我在一个组件中有以下方法:
ngOnInit()
{
this.battleInit();
setInterval(() => {
this.battleInit();
}, 5000);
}
现在,我只需要在用户位于此特定组件中时运行此间隔,这意味着当用户离开此组件时,间隔将停止。
目前,this.battleInit()
每5秒执行一次,即使用户离开此页面也是如此。
简短问题:当用户离开(通过路由)到另一个组件时,如何停止setInterval()
?
答案 0 :(得分:72)
您需要在组件的clearInterval
挂钩方法中使用ngOnDestroy
方法。为此,您需要使用setInterval
方法保存返回的值。
以下是一个示例:
ngOnInit() {
this.battleInit();
this.id = setInterval(() => {
this.battleInit();
}, 5000);
}
ngOnDestroy() {
if (this.id) {
clearInterval(this.id);
}
}
答案 1 :(得分:0)
below code are write <br>
ngOnInit() {
this.battleInit();
this.id = setInterval(() => {
this.battleInit();
}, 5000);
}
ngOnDestroy() {
if (this.id) {
clearInterval(this.id);
}
}
this.id表示它触发的迭代次数
答案 2 :(得分:0)
每40秒
polling: any;
ngOnInit() {
this.consulta();
this.pollData();
}
pollData () {
this.polling = setInterval(() => {
this.consulta();
},40*1000)
ngOnDestroy() {
clearInterval(this.polling);
}