实现自定义定时器
要求间隔时间越来越长,如a, a+b, a+2b ... a+nb,并能取消定时器
js
function myInterval(fn, a, b) {
let count = 0;
let timer;
function run() {
fn();
count++;
timer = setTimeout(run, a + count * b);
}
run();
return {
cancel: () => clearTimeout(timer)
};
}
// 测试
const myIntervalInstance = myInterval(() => {
console.log('执行任务');
}, 1000, 500); // 初始间隔1秒,之后每次增加0.5秒
// 取消定时器
myIntervalInstance.cancel()