定时器
我们在第 11 章中看到了setTimeout函数。 它会在给定的毫秒数之后,调度另一个函数在稍后调用。
有时读者需要取消调度的函数。可以存储setTimeout的返回值,并将作为参数调用clearTimeout。
let bombTimer = setTimeout(() => {console.log("BOOM!");}, 500);if (Math.random() < 0.5) { // 50% chanceconsole.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);
