根据RxJS 5 MIGRATION.md,shareReplay()
看起来已被删除。
.publishReplay(1).refCount()
是否忠实地复制了这种行为?基本上我需要将最新的单个数据集重播给任何新订阅者。答案 0 :(得分:13)
幸福新闻,shareReplay()
又回到了RxJS 5.4.0:
https://github.com/ReactiveX/rxjs/blob/892700dd4f5d5e5f9ae9276ede32208f4390c5e9/CHANGELOG.md#540-2017-05-09
答案 1 :(得分:8)
答案简短: 引用Blesh先生:
RxJS 5试图解决的问题是ConnectableObservables 应该是"可以重新连接",
refCount
应该返回一个可观察的 这是冷的,直到订阅,然后热,直到所有订阅 已经结束,然后再冷。
问题在于完成后主体的行为会阻止可连接的observable在完成时重新连接。
答案很长: https://github.com/ReactiveX/RxJS/issues/453
当前的API似乎是重新连接问题的两个愿景之间妥协的结果。如果有关人员可以对手头的问题进行总结,那将是很好的。我的理解是.publishReplay(1).refCount()
应保留旧的行为,即当您的订阅者数量达到0时,源被断开,您无法重播它。但不要接受我的话,测试它,我在讨论后迷路了。