当我有一个observable的多个订阅者时,例如:
const myInterval = Rx.Observable.interval(500);
const subscriptionOne = myInterval.subscribe(val => doSomething());
const subscriptionTwo = myInterval.subscribe(val => doSomething());
我怎么知道有多少订阅者仍然注册 myInterval 可观察?我需要这些信息,例如防止内存泄漏,以防我忘记取消订阅其中一个?
答案 0 :(得分:1)
使用角度2时,您应尽量使用异步管道,因为当您的组件被销毁时,这将自动取消订阅。
话虽如此。你在这里观察到的间隔是冷的可观察的。意思是,对于每个订阅,将设置值的生成者。这意味着,每次都会创建一个新订阅。因此,知道你仍然有多少订阅冷可观察是一个你无法回答的问题。
我担心你唯一能做的就是以干净的方式管理你的订阅,并尽可能多地依赖角度。