如何取消订阅rxjs中漂亮的TimerObservable
问题描述:
我不断收到取消订阅不是函数的错误。我正在使用[email protected]。如何取消订阅rxjs中漂亮的TimerObservable
这些都是我的import语句:
import { TimerObservable } from 'rxjs/observable/TimerObservable';
import 'rxjs/add/operator/take';
这是TimerObservable问题:
countdown = TimerObservable.create(0, 1000).take(6);
这揭开序幕定时器:
startCountdownTimer(): void {
this.countdown.subscribe(
i => this.timeRemaining = (5 - i).toString(),
null,
() => this.toDelete = -1)
}
这很好,这并未't work:
012的个
答
主叫方收到一个subscription:
startCountdownTimer(): void {
this.subscription = this.countdown.subscribe(
i => this.timeRemaining = (5 - i).toString(),
null,
() => this.toDelete = -1);
}
它有一个unsubscribe
方法:
cancelCountdownTimer(): void {
this.subscription.unsubscribe();
}
因此,对于每一个可观察我创造,我还需要一个订阅。得到它了。这似乎有点违反直觉,但可能是因为仍然有些事情我不了解RxJs。谢谢! – wolfhoundjesse
你可能会发现这个有趣的/有用的:https://medium.com/@benlesh/rxjs-dont-unsubscribe-6753ed4fda87 – cartant
我读过,当它出来。总是那里好东西!在这种特殊情况下,我将从应用程序中删除模块,并用内联元素替换它们,例如,出现一个新的列表项目,并在5秒倒计时删除和取消按钮。 现在,我没有真正考虑的是我是否可以用takeUntil替换take(6)(6或点击取消按钮)。你怎么看? – wolfhoundjesse