【问题标题】:Observable unsubscription not working angular可观察到的取消订阅不起作用
【发布时间】:2018-07-15 19:40:35
【问题描述】:

我正在以这种方式使用 Observables 进行间隔调用:

makeIntervalCall(){
  this.subscription = Observable
  .interval(3000)
  .do( dispatch to service* )
  .subscribe()

  if (status.something coming from ngrx store) {

    this.subscription.unsubscribe();
    console.log('interval killed')
  }

}

这可行,我的轮询停止,但我现在需要为其他调用重用相同的 Observable 序列。同样,这工作正常,但我看到 Observable 不断复制自己。我已经在取消订阅上放置了一个控制台日志,而不是每次都重复时调用自己。需要明确的是......在第 10 次使用调用序列时,它会注销 10 次,因为我希望它在我调用取消订阅时会自行销毁,并在我再次调用它时创建一个新流。为什么取消订阅不起作用?有没有一种替代方法可以在我每次调用它时销毁可观察对象并重新开始。

【问题讨论】:

    标签: angular angular2-observables


    【解决方案1】:

    好的,我刚刚发现我做错了什么......我正在使用 ngrx/store.. 在订阅中我有一个外环,它是我的 this.store.select 语句,它提供了取消订阅的机制。问题是我没有存储该订阅本身并在内部取消订阅:(

    【讨论】:

      猜你喜欢
      • 2018-11-22
      • 2018-11-05
      • 1970-01-01
      • 1970-01-01
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      • 2019-11-15
      • 1970-01-01
      相关资源
      最近更新 更多