有关我为自己写的运算符的快速问题。
请原谅我穷人的大理石图:
zip
aa--bb--cc--dd--ee--ff--------gg
--11----22--33--------44--55----
================================
--a1----b2--c3--------d4--e5----
combineLatest
aa--bb--cc--dd--ee--ff--------gg
--11----22--33--------44--55----
================================
--a1b1--c2--d3--e3--f3f4--f5--g5
zipLatest
aa--bb--cc--dd--ee--ff--------gg
--11----22--33--------44--55----
================================
--a1----c2--d3--------f4------g5
zipLatest
(我写的那个)与zip
几乎同时触发,但不包括zip
排队。我已经实现了它,我只是想知道是否已经存在。
我知道我过去曾经写过类似的方法,目的是随机发现我写了
sample
运算符而不知道它。那么,这是否已经存在于框架中,或者以我没想到的琐碎的元素构成而存在?
注意:我不想依靠输入的相等性来进行重复数据删除(la
distinctUntilChanged
)。它应与仅在一个时间间隔上输出
"a"
的信号一起使用。
最佳答案
要对此问题进行更新:RxJS 6中仍然没有针对此要求的运算符,并且似乎没有计划在将来的发行版中进行任何操作。也没有提议该运算符的未公开拉取请求。
如建议的here,combineLatest
,first
和repeat
的组合将产生预期的行为:
combineLatest(obs1, obs2).pipe(first()).pipe(repeat());
combineLatest
将等待两个Observable的发射-将所有发射与最新发射分开。在first
上发射并且repeat
重新订阅后,combineLatest
将完成Observable,从而使其再次等待两个Observable的最新值。repeat
的重新订阅行为尚未完全记录,但可以在GitHub source中找到:source.subscribe(this._unsubscribeAndRecycle());
关于system.reactive - 我的 "zipLatest"运算符已经存在吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38190722/