我有一个倒数计时器,在用户离开页面后继续运行。当用户离开页面时,我想要销毁倒数计时器或停止它。我怎样才能做到这一点?
countdown.ts
obtain_auth_token
答案 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
中将其销毁,
将清理逻辑放在ngOnDestroy()中,这是必须运行的逻辑 Angular破坏了该指令。
....
this.subscription = this.countDown.subscribe(...)
...
public ngOnDestroy() {
this.subscription.unsubscribe();
}
希望这会有所帮助!!