问题标签 [switchmap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
322 浏览

rxjs - SwitchMap 使用 onTabSelect

下面是我的代码,当用户选择选项卡时,我想取消现有调用并加载用户单击的选项卡详细信息。

我知道我必须使用 switchmap(如果它不正确或更好的选择,请指导我)

我遵循这个示例,但它对我不起作用,因为 id 具有 Valuechanges 属性 switchmap示例

0 投票
3 回答
1816 浏览

javascript - 使用 switchMap 取消订阅以前的 http 请求,只取最新的一个

我目前面临一个问题,第一次搜索可能需要 5 秒,第二次搜索需要 2 秒,问题是,第一次搜索需要更长的时间,将“擦除”之后完成的请求的结果,因为通话结束后。

我试图阅读

切换地图

在 rxJs 中并尝试使用它,但从我的尝试来看,它不会取消订阅先前的请求并删除结果。

我在这里可能做错了什么,但我无法准确指出问题所在。

Merge 的结果有 3 个变化源(分页、排序或新的搜索条件),对 sendSearchCriteria 的调用返回使用的数据。

sendSearchCriteria 返回一个Observable

有什么让你想到的,我做错了吗?

感谢您的帮助,

0 投票
1 回答
726 浏览

arrays - 尝试区分“...”时出错。只允许使用数组和可迭代对象。(使用 switchMap)

所以我正在学习 Angular,并且正在使用 Spotify API 开展一个项目。当我搜索音乐时,我收到此错误(尝试区分“A$AP Twelvyy”时出错。只允许使用数组和可迭代对象)。我想使用 switchMap,因为事件通过 keyup 触发。

这是服务

这是搜索组件

这是模板

0 投票
1 回答
226 浏览

java - 运算符 switchMap() 不会取消订阅上一个请求

我创建了一个从 edittext 发出文本的 Observable。然后在使用 switchmap 运算符时,我创建了一个在文件中查找匹配项的 Single。

我在这里订阅:

这是搜索:

结果,我得到每个请求都是依次执行的。例如,如果我输入查询“dog”,然后输入“cat”,结果会得到“dog”和“cat”。虽然我预计只会得到“猫”

例如:
输入:狗
“狗”正在进行中...
输入:猫
输出['狗'的结果]
“猫”正在进行中...
输出['猫'的结果]

我期望得到:
输入
正在进行中的狗“狗”......
输入:猫
“狗”已取消......正在进行中的
“猫”......
输出['cat'的结果]

0 投票
0 回答
64 浏览

javascript - rxjs:随着用户移动滑块逐渐获取值,在先前完成后发送新请求

目标:用户移动滑块,滑块值被发送到服务器计算某个值 X,显示在滑块旁边并随着滑块值的变化逐渐更新。

我做了什么:使用节流主题,switchMap'ped 来获取值:

它完成了这项工作,但是

问题:如果服务器响应时间长于限制时间,switchMap 操作员会取消 previos 调用。因此,滑块的缓慢移动会导致取消请求的顺序,并且只有在用户停止滑动时才会更新值。

需要改进:对于每个服务器调用,我需要等到响应到来,更新显示的值 X,然后使用滑块的最新值触发新调用。如果用户在有未决请求时停止滑动,则必须发出具有最新滑块值的最后一个请求。

(或者如果你对它应该如何工作有更好的了解)

0 投票
1 回答
44 浏览

reactive-programming - 为什么在切换映射无限流时未触发 onComplete

使用RxJava 2.2.8

输出

我的问题是为什么onComplete从来没有被要求执行以下操作?

输出

我知道Observable.interval会创建一个永无止境的流,所以没有onComplete。我的理解switchMap是它返回一个可观察的,它触发内部可观察产生的事件(取消任何未决和展平),在这种情况下 Observable.fromCallable

现在,这个“内部”可观察对象确实有一个明确的结束(与外部可观察对象不同),那么为什么不在onComplete这个内部可观察对象上调用呢?

为什么输出不是这样?

0 投票
1 回答
454 浏览

angular - 为什么我不能在 observable 中使用 switchMap

在此处输入图像描述

我写了这个函数,

但是控制台向我显示了这个错误,

this.afAuth.authState.switchMap 不是函数。

我怎么解决这个问题?

0 投票
1 回答
534 浏览

java - 不存在类型变量 Y 的实例,因此 Calendar 符合 LiveData

我希望我的LiveData<Calendar>实例在每次更改List时都Alarms更改。我有以下代码:

我看到的错误:

不存在类型变量 Y 的实例,因此 Calendar 符合

有人可以帮我吗?如何返回新的日历实例SwitchMapFunction

到 LiveData

0 投票
0 回答
348 浏览

angular - Angular 7 switchMap 调用两次

我一直试图让这个只用一个请求。

但是当函数调用服务时,它会触发两次 get 请求。

如果我删除 switchMap 它会触发一次。

http 请求被触发两次,它应该只触发一次。

任何帮助表示赞赏!

这是服务

感谢您的帮助

0 投票
1 回答
133 浏览

typescript - RXJS v6.4 switchMap 操作符返回一个 Observable 而不是结果(根据 TypeScript linter)

我正在运行一个 Angular 8 应用程序,我收到一个错误,这似乎是 RxJS 中的一个主要错误,或者我遗漏了一些东西。

现在我希望订阅者收到以下输出:

但相反,它输出了我在 switchMap 操作中返回的实际可观察​​对象:


概括

本质上,switchMap 似乎返回了一个类型的值,Observable<Observable<number>>而不仅仅是Observable<number>.

我不确定这是 TypeScript 还是 RxJS 错误,但似乎当我将 RxJS 恢复到 6.0.0 版本时,问题就消失了。


版本:

  • 角 8.0.0
  • 打字稿 3.4.5
  • RxJS 6.4.0

我刚刚测试过,同样的事情正在发生flatMap