clearTimeout用于取消未执行的setTimeout定时器,需传入其返回的timer ID;未保存ID则无法取消,重复调用或传入无效值均无效果但不报错。
clearTimeout 用来取消一个由 setTimeout 设置但尚未执行的定时器。
setTimeout 调用后会返回一个唯一的数字 ID(称为 timer ID),这个 ID 就是 clearTimeout 唯一需要的参数。
下面这段代码演示了如何设置并及时取消定时器:
let timerId = setTimeout(() => {
console.log('这条消息不会出现');
}, 2000);
// 在 1 秒后取消它
setTimeout(() => {
clearTimeout(timerId);
console.log('定时器已被取消');
}, 1000);
imeout(此时定时器已经执行完了,取消无意义)基本上就这些。关键就是:先拿到 setTimeout 的返回值,再把它传给 clearTimeout —— 简单直接,但容易忽略保存那个 ID。