方式一:使用Promise + then 在Promise中通过setTimout来设置定时器,通过then来执行回调。 // 使用Promise实现sleep const sleep = time => { return new Promise(resolve => { setTimeout(resolve,time) }) } var start = new Date().getTime(); sleep(2000).then(() => { console.log(1); var end...
方法一:这种实现方式是利用一个伪死循环阻塞主线程。因为JS是单线程的。所以通过这种方式可以实现真正意义上的sleep()。 functionsleep(delay) {varstart = (newDate()).getTime();while((newDate()).getTime() - start < delay) {continue; } }functiontest() {console.log('111');sleep(2000);console...
1、基于Date实现 通过死循环来阻止代码执行,同时不停比对是否超时。 function sleep(time){ var timeStamp = new Date().getTime(); var endTime = timeStamp + time; while(true){ if (new Date().getTime() > endTime){ return; } } } console.time('runTime:'); sleep(2000); console.log('...
实现sleep 函数其实非常简单,主要是理解 JavaScript 中异步执行情况。虽然上面的代码中使用 await sleep()的方式看起来最像一个真正的 sleep 函数,但是凡事都有两面性,比如我们有些场景只是需要一定时间后执行某个函数,不想阻塞代码的执行,这个时候 setTimeout 和 promise 都是非常好的选择,但有时候我们就是需要阻塞...
sleep js中是没有sleep函数,本文模拟sleep函数实现,比较常见常见的问题就是红路灯。sleep函数可以延迟程序的执行,程序执行过程中能够捕获到异常并抛出。 1.Promise实现 function sleep(time) { return new Promise(resolve => { setTimeout(() =>{ console.log(time, 'time') ...
实现sleep函数 1.使用async,await 1 2 3 4 5 6 7 8 9 10 11 functionsleep(time){ returnnewPromise((resolve,reject)=>{ setTimeout(resolve,time) }) } asyncfunctioninit(){ console.log('do something') await sleep(3000) console.log('睡完之后 do something')...
(一)Promise 实现 constsleep=(timeout)=>{returnnewPromise(resolve=>setTimeout(resolve,timeout));};sleep(1000).then(()=>{console.log("best Cindy");}); (二)Generator function*sleepGenerator(time){yieldnewPromise(function(resolve,reject){setTimeout(resolve,time);});};sleepGenerator(1000).ne...
实现sleep 函数 sleep()函数的作用是让一段程序进入不活跃状态并持续一段时间,很多编程语言都有自己的sleep方法,但 JavaScript 没有。 最接近的是setTimeout,它在指定的一段时间后执行回调内的某些操作: constprintNums=()=>{console.log(1)setTimeout(()=>console.log(2),500)console.log(3)}printNums()...
在JavaScript 中实现一个简短且优雅的 sleep 函数,可以通过 several 方法来实现,主要包括使用 Promise 和 async/awAIt、setTimeout 函数、以及 ES2017 引入的 Atomics 和 SharedArrayBuffer。这些方法各有特点,但使用 Promise 和 async/await 是最为简洁和现代的方式,能够使代码看起来更加直观和易于理解。