【问题标题】:Unsubscribe from observable timers that emit only once necessary?取消订阅仅在必要时发出一次的可观察计时器?
【发布时间】:2020-05-22 08:43:50
【问题描述】:

在我的程序中,我有一些 timer(1000).subscribe() 实例以及一些 timer(1000, 1000).subscribe() 部分。

我遇到了一些内存泄漏问题,想知道是否可以通过取消订阅计时器来缓解这些问题。取消订阅循环计时器似乎很简单也很有必要,但是我是否还必须取消订阅只发出一次的计时器?

我的问题的第二部分是是否有更好的方法来取消订阅发射计时器而不是将其放入如下变量中:

const myTimer = timer(1000).subscribe(() => {
    myTimer.unsubscribe();
});

谢谢!

【问题讨论】:

标签: node.js typescript rxjs observable rxjs-observables


【解决方案1】:

timer 将在一次发射后自行完成,因此无需取消订阅 对于取消订阅的替代方法,您可以使用订阅实例。通过使用它,您可以从存储所有订阅中受益,并一次调用全部取消订阅。

subs=new Subscription();
subs.add(timer(1000).subscribe())
subs.unsubscribe()

【讨论】:

  • 在上面的 take(1) 中似乎更容易使用
  • 正如我在回答中提到的。计时器不需要取消订阅。退订代码是向您展示处理退订的另一种方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-23
  • 1970-01-01
  • 2020-09-25
  • 2021-06-14
  • 1970-01-01
  • 2021-05-30
  • 2017-04-13
相关资源
最近更新 更多