执行两次函数,定时器也会执行两次,怎么才能让定时器只在最后一次执行
function debounce2(e) {
console.log(e.target.value)
let timeout
clearTimeout(timeout);
timeout = setTimeout(()=>{
console.log('执行')
}, 2000);
}
执行两次函数,定时器也会执行两次,怎么才能让定时器只在最后一次执行
function debounce2(e) {
console.log(e.target.value)
let timeout
clearTimeout(timeout);
timeout = setTimeout(()=>{
console.log('执行')
}, 2000);
}
function debounce2(e) {
console.log(e.target.value)
clearTimeout(window.timeout);
window.timeout = setTimeout(()=>{
console.log('执行')
}, 2000);
}
或者把 timeout 放在方法外面,你的 timeout 是方法块变量,第二次执行清理时 timeout的值是 undefined,是不起作用的