【问题标题】:dispose/unsubscribe inside subscribe function block in rxjs在 rxjs 中的订阅功能块内处理/取消订阅
【发布时间】:2023-03-14 23:39:01
【问题描述】:

我在 _auth 服务中有一个名为 authenticated 的 主题。

我想处置/取消订阅它如果某些条件失败,这样当下一个值到达经过身份验证的主题时,此订阅不会调用。

                this.sub = this._auth.authenticated
                .subscribe((loggedIn) => {
                    if (!loggedIn) {
                        this.sub.dispose(); // doesn't work because this.sub is null
                        this._location.replaceState('/');
                        this._auth.doLogout(); // emits value again in authenticated subject
                    }
                });

rxjs-5 的实现方式是什么?

【问题讨论】:

  • 您找到解决方案了吗?

标签: javascript rxjs5


【解决方案1】:

你持有对 observable 的引用,例如:obs$ 并调用 obs$.unsubscribe();

【讨论】:

    【解决方案2】:

    您可以在订阅结束后执行此操作this.sub.unsubscribe();。

    【讨论】:

    • 但是如果问题发布者最终想通过订阅中的某个登录事件取消订阅呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 2021-11-18
    • 1970-01-01
    • 2017-03-26
    • 2020-10-28
    • 2021-01-28
    相关资源
    最近更新 更多