js本质上是单线程执行,所以不可能像其他语言,比如C++,C#一样,直接将线程停止几秒钟的,那样会将进程卡死,所以这里的sleep其实是让上下两行语句的执行间隔达到一定时间
async function sleep(time) {
if(isNaN(time)) {
return;
}
return new Promise((resolve)=>{
setTimeout(()=>{
resolve(time);
}, time);
})
}
const beforeSleep = 1;
console.log(Date.now());
await sleep(3000);
const afterSleep = 2
console.log(Date.now());
原理:其实就是利用了Promise+await/async 达到异步执行timeout任务,但是在代码流程上实现同步效果