clearInterval 清除计时器后,定时器回调还执行问题解决

问题

在使用 setInterval 的过程中,通过 clearInterval 清除定时器后回调函数依旧执行了一次才被清除。

解决方法

在回调函数中添加一个判断,在清除定时器时将该判断条件设置成通过,回调函数通过后 return 出去即可,具体代码如下:

var isClear = false
var timer = setInterval(() => {
	if(isClear) return //回调函数判断到 isClear 值为true时不往下执行
    console.log("setInterval执行");
},3000)

setTimeout(() => {
	clearInterval(interv);
	timer = null
	var isClear = true //在清空定时器的同时将 isClear 设置为true
},9000)

你可能感兴趣的:(前端,javascript,前端,javascript,开发语言)