例如:
const s = rxjs.interval(2000).pipe(tap(console.log), shareReplay(1))
const b = s.subscribe(v => {})
// wait, console will begin output 0, 1, 2, 3, ...
b.unsubscribe()
// console will continue output 4, 5, 6, 7, ...
当没有订阅者以节省CPU使用率时,我希望我的流暂停。
在没有订阅者的情况下如何暂停流?
目标是让多个订户共享一个流。
答案 0 :(得分:1)
您需要multicast
才能通过ReplaySubject
共享数据,而refCount
可以跟踪订户数量。
const s = rxjs.interval(2000).pipe(
tap(console.log),
multicast(() => new ReplaySubject(1)),
refCount()
);
const b = s.subscribe(v => {})
setTimeout(()=>{
b.unsubscribe()
}, 5000)