Typescript 角度6:如何取消订阅rsjx间隔或计时器?
我认为问题很清楚。我找不到有关如何取消订阅Typescript 角度6:如何取消订阅rsjx间隔或计时器?,typescript,angular6,Typescript,Angular6,我认为问题很清楚。我找不到有关如何取消订阅rsjx-操作(如间隔或计时器)的任何信息 我的组成部分: public intervallTimer = interval(5000); ngOnInit() { this.getValues(); this.intervallTimer.subscribe(() => this.getValues()); } // What I like to do is something like this, but "unsubscribe(
rsjx
-操作(如间隔或计时器)的任何信息
我的组成部分:
public intervallTimer = interval(5000);
ngOnInit() {
this.getValues();
this.intervallTimer.subscribe(() => this.getValues());
}
// What I like to do is something like this, but "unsubscribe()" that's no function
somefunction(){
this.intervallTimer.unsubscribe()
}
subscribe
返回一个subscribe
对象,该对象将unsubscribe
作为方法。您有一个选择:
public intervallTimer = interval(5000);
private subscription;
ngOnInit() {
this.getValues();
this.subscription = this.intervallTimer.subscribe(() => this.getValues());
}
somefunction(){
this.subscription.unsubscribe()
}
这要求您明确取消订阅,而您可能不想这样做。您也可以考虑使用<代码> Tube直到,它返回<代码>完整< /代码>代码>可观察的< /代码>,这将导致自动<代码>退订< /代码>。只需确保takeUntil
已关闭
或者您可以使用takeWhile(布尔)
来控制行为
this.intervallTimer.pipe(
takeWhile(// your condition)
).subscribe(() => this.getValues());
您可以在中找到文档,您需要取消订阅
通过调用.subscribe()
获得的订阅
。
this.intervallTimer.pipe(
takeWhile(// your condition)
).subscribe(() => this.getValues());