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

时间:2016-10-20 14:48:19

标签: javascript node.js angular rxjs observable

当我有一个observable的多个订阅者时,例如:

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

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

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

1 个答案:

答案 0 :(得分:1)

使用角度2时,您应尽量使用异步管道,因为当您的组件被销毁时,这将自动取消订阅。

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

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