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

6 javascript node.js observable rxjs angular

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

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

const subscriptionOne = myInterval.subscribe(val => doSomething());
const subscriptionTwo = myInterval.subscribe(val => doSomething());
Run Code Online (Sandbox Code Playgroud)

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

Kwi*_*enP 1

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

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

恐怕您唯一能做的就是以干净的方式管理您的订阅,并为此尽可能依赖 Angular。