Angular 2 setinterval()继续在其他组件上运行

前端之家收集整理的这篇文章主要介绍了Angular 2 setinterval()继续在其他组件上运行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在一个组件中有以下方法
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);
  }
}

猜你在找的Angularjs相关文章