如何破坏/停止可观察的间隔

时间:2017-08-25 19:19:48

标签: angular ionic-framework

我有一个倒数计时器,在用户离开页面后继续运行。当用户离开页面时,我想要销毁倒数计时器或停止它。我怎样才能做到这一点?

countdown.ts

obtain_auth_token

2 个答案:

答案 0 :(得分:9)

您可以使用takeUntil运算符。

import { Subject } from 'rxjs/Subject';
import 'rxjs/add/operator/takeUntil';

...

private onDestroy$ = new Subject<void>();

ngOnDestroy(): void {
    this.onDestroy$.next();
}

ngOnInit() {
    this.countDown = Observable.interval(1000)
                               .takeUntil(this.onDestroy$) // <----
                               .map(
... 

答案 1 :(得分:0)

您必须根据this.countDown创建子代码,您可以在ngOnDestroy中将其销毁,

摘自documentation

  

将清理逻辑放在ngOnDestroy()中,这是必须运行的逻辑   Angular破坏了该指令。

....
this.subscription = this.countDown.subscribe(...)
...

public ngOnDestroy() {
    this.subscription.unsubscribe();
}

希望这会有所帮助!!