var timer = null
timer = setTimeout(() => {
window.clearTimeout(timer)
console.log(timer)
}, 1000)
为什么打印timer 返回的不是null ,而是数字?
求讲解
var timer = null
timer = setTimeout(() => {
window.clearTimeout(timer)
console.log(timer)
}, 1000)
为什么打印timer 返回的不是null ,而是数字?
求讲解
建议了解相关知识:定时器,事件循环。
设置定时器1000ms后,定时器里的函数会被加入到宏任务队列里,并执行。此时,设置的只执行一次的定时器已经生效过了,清除定时器没有意义。
timer的值为定时器的序号,只有手动赋值为null,才会变为null。
清除定时器要在定时器触发前调用才有意义。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
?
为什么会是
null
?你搁哪看着的
clearTimeout(
timeoutID
)
以后timeoutID
会变null
的?而且你这段代码有什么意义么?
setTimeout
本身就是只执行一次,结果你在执行回调里去clearTimeout
,都执行完了你清理不清理有啥用呢?