【问题标题】:Rxjs how to know how many subscribers observable have?Rxjs 如何知道 observable 有多少订阅者?
【发布时间】:2017-03-02 15:34:01
【问题描述】:

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

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

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

我怎么知道有多少订阅者仍然注册到 myInterval observable?例如,我需要这些信息来防止内存泄漏,以防我忘记退订其中之一?

【问题讨论】:

    标签: javascript node.js angular rxjs observable


    【解决方案1】:

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

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

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

    【讨论】:

    • 例如,如果我在我的组件中使用表单中的 valueChanges.subscribe?我需要手动退订吗?
    猜你喜欢
    • 1970-01-01
    • 2019-09-15
    • 2017-08-31
    • 1970-01-01
    • 2017-10-10
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    相关资源
    最近更新 更多