shareReplay in RxJS 5
问题描述:
根据RxJS 5 MIGRATION.md,看起来shareReplay()
已被删除。shareReplay in RxJS 5
- 为什么?
-
.publishReplay(1).refCount()
是否忠实地复制了该行为?基本上我需要重播最新的单个数据集给任何新的用户。
答
简短的回答: 引用Blesh先生:
问题RxJS 5试图解决的是ConnectableObservables 应该是“重新连接”,并
refCount
应该返回一个可观察 是冷到订阅,然后热点,直到所有订阅 已结束,然后再次冷。
问题在于完成后的主体行为,它阻止可连接的observable完成时重新连接。
长的答案: https://github.com/ReactiveX/RxJS/issues/453
目前API似乎是重新连接问题的两种观点之间的妥协的结果。如果有关人员能够对手头的问题进行总结,那将是非常好的。我的理解是,.publishReplay(1).refCount()
应该保持旧的行为,那就是当你的用户数量达到0时,源被断开,并且你不能重放它。但不要听我的话,测试它,我讨论后迷路了。
答
喜讯,shareReplay()
是早在RxJS 5.4.0: https://github.com/ReactiveX/rxjs/blob/892700dd4f5d5e5f9ae9276ede32208f4390c5e9/CHANGELOG.md#540-2017-05-09