关于我自己写的一个运算符的快速问题。
请原谅我可怜的大理石图表:
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
操作员在不知情的情况下。
那么,它是否已经存在于框架中,或者作为我没有想到的元素的微不足道的组合而存在?
注意:我不想依赖输入的相等性来删除重复(a ladistinctUntilChanged
)。
它应该与仅输出的信号一起使用"a"
在一个间隔上。
提供有关该问题的更新:RxJS 6 中仍然没有包含此要求的操作符,并且似乎没有计划在未来版本中使用该操作符。也没有提出此操作员的公开拉取请求。
按照建议here https://stackoverflow.com/questions/46602541/rxjs-lossy-form-of-zip-operator, 的组合combineLatest
, first
and repeat
将产生预期的行为:
combineLatest(obs1, obs2).pipe(first()).pipe(repeat());
combineLatest
将等待两个 Observables 的发射 - 丢弃除每个 Observables 中最新的发射之外的所有发射。first
将在发射后完成 Observable 并repeat
重新订阅于combineLatest
,导致它再次等待两个可观察量的最新值。
的重新订阅行为repeat
没有完整记录,但可以在GitHub 源码 https://github.com/ReactiveX/rxjs/blob/01a09789a0a9484c368b7bd6ed37f94d25490a00/src/internal/operators/repeat.ts:
source.subscribe(this._unsubscribeAndRecycle());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)