提问者:小点点

rxjs如何知道可观察的订阅者有多少?


当我有一个可观察对象的多个订阅者时,例如:

const myInterval = Rx.Observable.interval(500);

const subscriptionOne = myInterval.subscribe(val => doSomething());
const subscriptionTwo = myInterval.subscribe(val => doSomething());

我如何知道有多少订阅者仍然注册到myInterval可观察?例如,我需要这些信息来防止内存泄漏,以防我忘记取消订阅其中一个?


共1个答案

匿名用户

使用角2时,您应该尽可能多地尝试使用异步管道,因为当您的组件被销毁时,这将自动为您取消订阅。

话虽如此。这里的间隔可观察性是一个冷可观察性。这意味着,对于每个订阅,都会设置值的生产者。这意味着每次都会创建一个新的订阅。所以知道你还有多少订阅到一个冷可观察性是一个你无法回答的问题。

恐怕你唯一能做的就是以干净的方式管理你的订阅,并尽可能多地依赖角度。