我在一个组件中有以下
方法:
ngOnInit()
{
this.battleInit();
setInterval(() => {
this.battleInit();
},5000);
}
现在,我只需要在用户位于此特定组件中时运行此间隔,这意味着当用户离开此组件时,间隔将停止。
目前,即使用户导航离开此页面,this.battleInit()也会每5秒执行一次。
简短的问题:当用户离开(通过路由)到另一个组件时,如何停止setInterval()?
您需要在组件的ngOnDestroy挂钩
方法中使用clearInterval
方法。为此,您需要通过setInterval
方法保存返回的值。
这是一个示例:
ngOnInit() {
this.battleInit();
this.id = setInterval(() => {
this.battleInit();
},5000);
}
ngOnDestroy() {
if (this.id) {
clearInterval(this.id);
}
}