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...