取消订阅后订阅()

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

我的问题

  1. 我如何在 unsubscribe 之后订阅?如果不行,你能想出其他办法吗?

错误正确。您正在呼叫:

this.lineOrdersSub[line.$key] = this.af.d ... .subscribe(...);

这意味着您要将 Subscription 对象分配给 this.lineOrdersSub[line.$key]。不是 Observable。

然后调用 .unsubscribe() 显然可以正常工作。当您尝试调用 subscribe() 时失败,因为订阅对象没有 subscribe() 方法。

您必须订阅 Observable。