可观察的取消订阅不起作用

时间:2018-02-05 20:48:22

标签: angular angular2-observables

我正在以这种方式与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次,因为当我打电话取消订阅并在我再次调用它时创建一个新流时,我希望它会自行销毁。为什么取消订阅不起作用?是否有一种替代方案可以摧毁可观察物,并且每当我称它为新鲜时就开始新鲜。

1 个答案:

答案 0 :(得分:1)

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