定时器
我们在第 11 章中看到了setTimeout
函数。 它会在给定的毫秒数之后,调度另一个函数在稍后调用。
有时读者需要取消调度的函数。可以存储setTimeout
的返回值,并将作为参数调用clearTimeout
。
let bombTimer = setTimeout(() => {
console.log("BOOM!");
}, 500);
if (Math.random() < 0.5) { // 50% chance
console.log("Defused.");
clearTimeout(bombTimer);
}
函数cancelAnimationFrame
作用与clearTimeout
相同,使用requestAnimationFrame
的返回值调用该函数,可以取消帧(假定函数还没有被调用)。
还有setInterval
和clearInterval
这种相似的函数,用于设置计时器,每隔一定毫秒数重复执行一次。
let ticks = 0;
let clock = setInterval(() => {
console.log("tick", ticks++);
if (ticks == 10) {
clearInterval(clock);
console.log("stop.");
}
}, 200);