function sleep(NumMillis) { var nowTime = new Date(); var exitTime = nowTime .getTime() + NumMillis; while (true) { now = new Date(); if (... 那下面的方法就可以 实现 同步阻塞的效果,把阻塞的代码放到blockForThreeSeconds().then(()中即可。有时 前端 实现 代码停止几 执行 后续代码,可能会受到异步 执行 的困扰。 js 实现 睡眠 方法(sleep) 如果你不需要用到原函数的this那么这么用。(需要用到this请往下看) //这种用法在doSomething处使用this的话,指向的是匿名函数 //3000表示 睡眠 3s后 执行 doSomething setTimeout(function(){ //doSomething(这里写时间到之后需要去做的事情) }, 3000); 这种用法的好处是,你的this还是原函数的this。 function sleep (time) { return new Promise(( function sleep(numberMillis) { var now = new Date(); var exitTime = now.getTime() + numberMillis; while (true) { js 中一般用setTimeout或者setTimeInterval 实现 函数的延迟 执行 ,但是这两个方法相当于开启的新的线程进行等待,而如果我们想让代码串行的进行等待,这两个函数就 实现 不了了。 这时,可以自己写一个函数以 实现 串行等待的 功能 var t = Date.now(); function sleep(d){ while(Date.now - t <= d); sleep(1000 很多语言中都有sleep(),delay()等方法,它能让我们的程序不急着去 执行 下一步操作,而是延迟、等待一段时间。开发实践中经常会遇到需要这样的需求,比如等待几分钟再去检查某一事件是否发生。JavaScript里有setTimeout()方法来 实现 设定一段时间后 执行 某个任务,但写法很丑陋,需要提供回调函数:setTimeout(function(){ console.log("some oper...