使用RXJS,是否有一种方法可以产生一个可观察对象,当当前源可观察对象发出的项目数量相同时发出? &g



我有两个要注意的可观察对象(obs1和obs2)。它们永远不会完成,在它们的一生中,我可以预期它们会排放相同数量的物品。我不知道哪一个会先释放。我需要一些东西,每次源可观察对象发出它们的第n项时都会发出。所以,我正在寻找一个可观察到的行为在以下两种方式之一:

  • (a)每当源可观测对象发出相同数量的项时,它就会发出。
  • (b)每次可观测到的、目前排放最少物质的源排放时,它都会排放。

示例:

如果obs1发出它的第一项然后obs2发出它的第一项,myObservable将产生它的第一次发射.那么如果obs2发出一个second第三项obs1之前什么都不会发生发出它的第二项只有这样,myObservable产生第二次排放.

(a)当源可观测对象发出的项数相同时。

(b)无论何时,在所有源可观测值中,发射的最低项数增加。

RxJS#zip

Zip正是你想要的。

例如,考虑以下两个间隔,每个间隔发射5次,但频率不同:

zip(
interval(1000).pipe(map(v => v + 10) , take(5)), 
interval(1500).pipe(map(v => v + 100), take(5))
).subscribe(console.log);

我相信你想要的"zip"函数(或者可能是组合最新)。

https://rxjs.dev/api/index/function/zip

https://rxjs.dev/api/index/function/combineLatest

https://www.freecodecamp.org/news/understand-rxjs-operators-by-eating-a-pizza/

相关内容

  • 没有找到相关文章

最新更新