我在一个组件中有以下方法:
ngOnInit()
{
this.battleInit();
setInterval(() => {
this.battleInit();
}, 5000);
}现在,只有当用户在此特定组件中时,我才需要运行此间隔,这意味着当用户离开此组件时,间隔将停止。
目前,this.battleInit()每5秒执行一次,即使在用户离开此页面之后也是如此。
简短问题:当用户导航离开(通过路由)到另一个组件时,如何停止setInterval()?
发布于 2016-05-09 21:07:53
为此,您需要在组件的ngOnDestroy钩子方法中使用clearInterval方法。为此,您需要通过setInterval方法保存返回值。
下面是一个示例:
ngOnInit() {
this.battleInit();
this.id = setInterval(() => {
this.battleInit();
}, 5000);
}
ngOnDestroy() {
if (this.id) {
clearInterval(this.id);
}
}发布于 2019-10-31 06:13:36
每隔40秒
polling: any;
ngOnInit() {
this.consulta();
this.pollData();
}
pollData () {
this.polling = setInterval(() => {
this.consulta();
},40*1000)
ngOnDestroy() {
clearInterval(this.polling);
}发布于 2019-10-14 15:43:49
ngOnInit() {
this.battleInit();
this.id = setInterval(() => {
this.battleInit();
}, 5000);
}
ngOnDestroy() {
if (this.id) {
clearInterval(this.id);
}
}
this.id是setInterval返回的标识符,可用于通过clearInterval取消操作。
https://stackoverflow.com/questions/37116619
复制相似问题