取消订阅后订阅()
Subscribe after 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
我的问题:
- 我如何在
unsubscribe
之后订阅?如果不行,你能想出其他办法吗?
错误正确。您正在呼叫:
this.lineOrdersSub[line.$key] = this.af.d ... .subscribe(...);
这意味着您要将 Subscription
对象分配给 this.lineOrdersSub[line.$key]
。不是 Observable。
然后调用 .unsubscribe()
显然可以正常工作。当您尝试调用 subscribe()
时失败,因为订阅对象没有 subscribe()
方法。
您必须订阅 Observable。
我有一组可观察值。
在我的 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
我的问题:
- 我如何在
unsubscribe
之后订阅?如果不行,你能想出其他办法吗?
错误正确。您正在呼叫:
this.lineOrdersSub[line.$key] = this.af.d ... .subscribe(...);
这意味着您要将 Subscription
对象分配给 this.lineOrdersSub[line.$key]
。不是 Observable。
然后调用 .unsubscribe()
显然可以正常工作。当您尝试调用 subscribe()
时失败,因为订阅对象没有 subscribe()
方法。
您必须订阅 Observable。