functionmySetTimeout(...rest){ // 1.得到调用setTimeoutMy函数时的时间戳 let start =newDate().getTime(); // 2.得到回调函数结束的时间 let end = start+ rest[1]; // 3. 监听事件变化,当事件到达指定的结束时间时,结束回调函数 let timer =setInterval(()=>{ let time =newDate().getTime(); if(time>=end){ clearInterval(timer); rest[0](rest[2]); } },17) console.log('同步执行----'); }