angular - 在 Unsubscribe() 之后订阅
我有一个可观察对象的数组。
在我的 ngOnInit() 方法中,我初始化了我的订阅。
this.lineOrdersSub[line.$key] = this.af.database.list(this.businessService.path + 'line_orders/' + line.$key)
.subscribe((lineOrders) => {
this.line_orders[line.$key] = lineOrders;
});
我也为每个订阅提供一个复选框。当复选框被勾选时(默认),该订阅是激活的(订阅新数据)。
当我取消选中复选框时,我这样做:
unCheckmethod() {
this.lineOrdersSub[line.$key].unsubscribe(); //Unsubscribe to my subscription
this.line_orders[line.$key] = null; // Remove the data I get after the subscription (See first code snippet)
}
我的取消选中方法运行良好,但在我尝试使用以下方式重新启动订阅后:
checkMethod() {
this.lineOrdersSub[line.$key].subscribe();
}
我得到:
this.lineOrdersSub[line.$key].subscribe is not a function
我的问题:
- 我在
取消订阅后,怎么再次订阅?如果不可能,你能想到其他方法吗?
答案#1
错误是正确的。你调用的是:
this.lineOrdersSub[line.$key] = this.af.d ... .subscribe(...);
这意味着你正在将一个 Subscription 对象分配给 this.lineOrdersSub[line.$key],而不是一个 Observable。
然后调用 .unsubscribe() 显然按预期工作。当你尝试调用 subscribe() 时,它会失败,因为 Subscription 对象没有 subscribe() 方法。
你必须订阅这个可观察对象。
