前言
有时需要延迟执行某个函数,可以考虑使用 setTimeout 方法;如果在超时时间内发生了某个事件,想要取消执行之前设置的方法,可以使用 clearTimeout 清理掉之前设置的 timeout 对象。
setTimeout
setTimeout(function() {
console.info(‘exec action')
}, 3000)
setTimeout 有两个参数,第一个参数是一个函数,表示需要延迟执行的函数。
第二参数是延迟时间,默认单位为毫秒,上面表示 3000 毫秒。
clearTimeout
调用 clearTimeout 时,需要一个timeout 对象作为参数,所以在调用 setTimeout 方法时,需要用一个变量保存 timeout 对象
var timeout
function a() {
timeout = setTimeout(function() {
console.info(‘exec action')
}, 3000)
}
function b() {
clearTimeout(timeout)
}
在方法 a 中使用变量 timeout 存下了 setTimeout 返回的对象;
在方法 b 中调用 clearTimeout 方法,传入 timeout 保存的对象,取消之前设置的 timeout,这样待延迟执行的方法就不会被调用。