考虑以下代码片段
const interval$ = Rx.Observable.interval(1000).share();
interval$.subscribe(x=> console.log('a=' + a));
setTimeout(() => {
interval$.subscribe(x=> console.log('b=' + b));
}, 1500);
我需要迟到的订阅者也返回最后发出的值(在本例中为 0)。这如何用 RxJS 完成(注意我需要一个共享的可观察对象)
最佳答案
要创建一个共享的可观察对象来向迟到的订阅者重播最后发出的值,请替换:
const interval$ = Rx.Observable
.interval(1000)
.share();
与:
const interval$ = Rx.Observable
.interval(1000)
.publishReplay(1)
.refCount();
share
类似于 .publish().refCount()
,所以如果你想重播上次发出的值,publishReplay
是你可以使用的。
关于javascript - 如何使用延迟订阅从可观察对象返回最后发出的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42705394/