shareReplay in RxJS 5

こ雲淡風輕ζ 提交于 2019-11-28 03:29:37

问题


According to the RxJS 5 MIGRATION.md it looks like shareReplay() been removed.

  1. Why?
  2. Does .publishReplay(1).refCount() faithfully replicate the behaviour? Basically I need to replay the single most recent data set to any new subscribers.

回答1:


The short answer : Quoting Sir Blesh :

The problem RxJS 5 is trying to solve is that ConnectableObservables should be "reconnectable", and refCount should return an observable that is cold until subscribed to, then hot until all subscriptions have ended, then cold again.

The issue is that of the behaviour of subjects after completion which prevents a connectable observable to be reconnected when completed.

The long answer : https://github.com/ReactiveX/RxJS/issues/453

The current API appears to be the result of a compromise between two visions of the reconnection issue. It would be great if those involved could do a summary of the issues at hand. My understanding is that .publishReplay(1).refCount() should keep the old behaviour, that is that when your number of subscribers reaches 0, the source is disconnected, and you can't replay it. But don't take my word for it, test it, I got lost following the discussion.




回答2:


Happy news, shareReplay() is back in RxJS 5.4.0: https://github.com/ReactiveX/rxjs/blob/892700dd4f5d5e5f9ae9276ede32208f4390c5e9/CHANGELOG.md#540-2017-05-09



来源:https://stackoverflow.com/questions/35246873/sharereplay-in-rxjs-5

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!