gpt4 book ai didi

javascript - 没有订阅者时如何暂停 shareReplay

转载 作者:行者123 更新时间:2023-11-30 19:38:15 38 4
gpt4 key购买 nike

例如:

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 使用率。

没有订阅者时如何暂停流?

目标是让多个订阅者共享一个流。

  • 当第一个订阅者到来时,流将从一个初始值开始并定期提供数据。
  • 当新的订阅者到来时,它将获取流中的最新值。
  • 当所有订阅者都离开时,数据流可以安全关闭,下一个来的将被视为第一个。

最佳答案

您需要一个多播来通过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)

关于javascript - 没有订阅者时如何暂停 shareReplay,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55703440/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com