nodejs异步中模拟使用sleep
1. promise 这个在连接MYSQL数据库使用 可能会出现报错
function sleep(delay){
return function(){
return new Promise(function(resolve, reject){
setTimeout(resolve, delay);
});
}
}
var promise = new Promise(function(resolve){
console.log('do something');
resolve();
}).then(sleep(2000)).then(function(){
console.log('after sleep 2000');
});
2. es6-generator
function sleep(ms) {
return function (cb) {
setTimeout(cb, ms);
};
}
co(function *() {
var now = Date.now();
yield sleep(2000);
expect(Date.now() - now).to.not.be.below(2000);
})();
声明:如下方法一个死循环方法 实际项目中不可取 你的CPU会爆掉
var array = [1,2,3,4];
function sleep(milliSeconds){
var startTime =new Date().getTime();
while(new Date().getTime()< startTime + milliSeconds);
}
function check(){
if(array.length > 0){
var url = array.pop();
load(url);
}
}
function load(url){
console.log(url);
console.log('waiting');
sleep(10000); //暂停10s
check();
}
load();
return;