clearTimeout用于取消未执行的setTimeout定时器,需传入其返回的timer ID;未保存ID则无法取消,重复调用或传入无效值均无效果但不报错。

clearTimeout 用来取消一个由 setTimeout 设置但尚未执行的定时器。
它需要配合 setTimeout 的返回值使用
setTimeout 调用后会返回一个唯一的数字 ID(称为 timer ID),这个 ID 就是 clearTimeout 唯一需要的参数。
不保存这个 ID,就无法取消定时器 同一个 ID 只能 clearTimeout 一次,重复调用无效(也不会报错) ID 为 0 或 null、undefined 传给 clearTimeout,不会出错,但也不起作用
基本用法示例
下面这段代码演示了如何设置并及时取消定时器:
let timerId = setTimeout(() => { console.log('这条消息不会出现');}, 2000);// 在 1 秒后取消它setTimeout(() => { clearTimeout(timerId); console.log('定时器已被取消');}, 1000);
常见误用注意点
不要对 setInterval 返回的 ID 使用 clearTimeout(该用 clearInterval) 不要在 setTimeout 回调内部调用 clearTimeout(此时定时器已经执行完了,取消无意义) 如果定时器已执行或已被清除,再次 clearTimeout 不会报错,但也没效果 避免全局变量存 timerId,建议封装在闭包、类属性或 React 的 useRef 中管理生命周期
基本上就这些。关键就是:先拿到 setTimeout 的返回值,再把它传给 clearTimeout —— 简单直接,但容易忽略保存那个 ID。
立即学习“Java免费学习笔记(深入)”;
以上就是JavaScript clearTimeout如何用_它如何取消定时器?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1542657.html
微信扫一扫
支付宝扫一扫