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;