问题 : 清除定时器的时候,,会出现清除失败的事情
已解决 :
例如 下了下面的定时器
this.zhiFshi_time = setInterval(() => {
console.log("我是定时器");
}, 1000);
常规做法 window.clearInterval(this.zhiFshi_time); 会出现清除不掉的情况,
原因 :
在控制台打印的时候,会发现 this.zhiFshi_time会是两个值 一个是number一个是对象
如果直接清除,,number可以清掉,对象则会报错,
一开始的解决办法如下: (可以暂时解决(但不是最好的))
//关闭定时器
if (this.zhiFshi_time instanceof Object) {
window.clearInterval(this.zhiFshi_time._id);
this.zhiFshi_time = null;
} else {
window.clearInterval(this.zhiFshi_time);
this.zhiFshi_time = null;
}
后来发现 :
import { setInterval, clearInterval } from "timers";
import { setTimeout, clearTimeout } from "timers";
这两个引入,,在写了定时器的时候,,和清除定时器时,,,会自动引入
引入这个和不引入会直接导致 定时器的值变成number或者obj, 加个判断更为保险