gpt4 book ai didi

angular - 如何取消订阅 Angular2 中的 Firebase 列表?

转载 作者:太空狗 更新时间:2023-10-29 17:46:39 26 4
gpt4 key购买 nike

我正在使用

连接到 Firebase 列表
tasks: FirebaseListObservable<ITask[]>;

constructor(private af: AngularFire) {
this.tasks = this.af.database.list("/tasks");
}

现在我想在我的用户注销时取消该连接。

我已经尝试过 this.tasks.unsubscribe(),但看起来该方法未定义(我尝试过此方法是因为 FirebaseListObservable 是一个可观察对象)。

我也按照文档中的建议尝试了 this.tasks.off(),但它也是未定义的。

最后,我尝试了 this.tasks = null 并成功了,但我不确定这是否是正确的实现。

最佳答案

this.tasks 是一个 Observable不是 Subscription这就是为什么你不能取消订阅。

如果您是手动订阅,那么您可以:

let observable = Rx.Observable.interval(1000);
let subscription = observable.subscribe(x => console.log(x));
subscription.unsubscribe();

如果您使用的是 async pipe然后 Angular 会在组件销毁时自动取消订阅。基于source code ,如果管道的值更改为 null,则 observable 将被取消订阅,但这在文档中的任何地方都没有指定。我认为更好的选择是显式销毁使用异步管道的组件。

关于angular - 如何取消订阅 Angular2 中的 Firebase 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42336142/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com