//fn为回调函数,timeout为延时时间,args为fn需要的入参
var mySetTimeout = function(fn, timeout = 0, ...args){
const start= +new Date();
let timer, now;
const loop = () => {
timer = window.requestAnimationFrame(loop);
now = +new Date();
if(now - start >= timeout){
fn.apply(this, args);
window.cancelAnimationFrame(timer);
}
}
window.requestAnimationFrame(loop);
}
setTimeout的简易实现
最新推荐文章于 2022-07-27 16:26:25 发布