36得票3回答
RxJS中throttleTime和debounceTime有什么区别?在什么情况下选择哪个?

我正在尝试理解throttleTime和debounceTime,以及何时使用哪一个? 我有一个投票按钮,它会向后端发出API请求(用于计算投票数)。用户可以多次提交按钮,但我希望限制每秒钟可以按下按钮的次数。 我知道throttleTime和debounceTime运算符都可以做到这一点,但...

21得票1回答
RxJS / Angular Observables使用1个还是多个管道?

以下是一个简单的例子: observable.pipe(map( s => s.anything )) .pipe(filter(t => t > 5)) .pipe(map( t => t+5)) .sub...

16得票5回答
如何根据另一个Observable重置RXJS扫描操作符

我有一个组件,当虚拟列表中的最后一项被渲染时触发onScrollEnd事件。该事件将执行一个新的API请求来获取下一页数据,并使用scan运算符将它们与先前的结果合并。 此组件还有一个搜索字段,会触发onSearch事件。 当触发搜索事件时,如何清除scan运算符中之前积累的结果?或者我需...

15得票2回答
Rxjs 的 `distinctUntilChanged()` 方法似乎无法正常工作。

在一个rxjs流中,我正在使用distinctUntilChanged和lodash的isEqual来过滤重复的值。然而它似乎没有按预期工作。请看以下代码片段。import { isEqual } from 'lodash-es'; let cachedValue: any; functi...

14得票3回答
在管道内组合多个可观察对象的RXJS

我有一个API调用,返回了一定数量的ID。每个ID都用于进行新的API调用。这些API调用的结果需要合并成一个单独的对象。 起初,我在第一个API调用的.pipe(map)操作符中使用了一个循环。在这个循环中,我进行了第二个API调用,并在每个调用的.pipe(map)操作符中编辑了我的An...

14得票1回答
如何在另一个observable中使用一个observable的结果(然后将这两个结果一起处理)?——RXJS

使用RxJs时,一个非常常见的问题似乎是想要一个或多个 observables 的结果,然后在随后的 observables 中使用它们。 例如,在伪代码中(这不是 Rx 或有效的 js 语法),var someResult = $observable-A; // wait to compl...

13得票7回答
RxJS使用shareReplay进行缓存和刷新

我正在使用缓存来保存从API检索到的某些数据,由于逻辑原因,存储的数据仅在有限时间内有效,因此我正在使用类似以下内容的东西: someApiData$ = this.getData() .pipe(shareReplay(1, 3000)) 我认为很明显,但似乎shareRepl...

10得票2回答
如何在管道中调用forkJoin?

简述:能否在 observable 管道中使用 forkJoin? 完整故事:我有一个服务,返回对象数组的可观察对象。我需要为每个对象调用另一个返回可观察对象的服务,并对每个结果应用另一种操作。 op1 ->[] ----> op2 --> op3 \\...

9得票1回答
如何在rxjs6中导入ErrorObservable或_throw?在rxjs中抛出异常。

我正在迁移到rxjs 6.0.0-ucandoit-rc.6 版本。在版本5.5.2中,我使用ErrorObservable创建错误的observable。 我是按照这里推荐的方式使用的:https://github.com/ReactiveX/rxjs/blob/master/doc/pi...

9得票5回答
RxJS mergeMap() 与原始顺序的合并映射

抽象问题 有没有一种方法可以按照外部可观察对象的原始顺序消耗mergeMap的结果,同时仍然允许内部可观察对象并行运行? 更详细的解释 让我们来看两个合并映射操作符: mergeMap ...which takes a mapping callback, and a number...