在Angular 7中移动到另一个组件时如何停止间隔:
public s: Observable<any>;
this.s = interval(5000)
.pipe(takeWhile(() => this.visitors.length > 0))
.subscribe(() => {});
我试图在组件析构函数中停止间隔:
ngOnDestroy() {
this.s.unsubscribe();
}
答案 0 :(得分:2)
您犯了2个错误;让我来描述一下:
subscribe()
函数不会返回Observable
; pipe
返回。unsubscribe
不会停止间隔。我使用setInterval
代替间隔,例如:
timer: any;
ngOnInit() {
this.timer = setInterval(() => {
// here do whatever you want every 5 seconds
}, 5000);
}
并使用clearInterval
函数onDestroy;喜欢:
ngOnDestroy() {
clearInterval(this.timer);
}