实现sleep的效果
实现sleep的效果
1. while循环的方式
function sleep(ms){
let start = Date.now();
let expire = start + ms;
while(Date.now() < expire);
console.log('111');
return;
} 执行sleep(1000)之后,休眠了1000ms之后输出111。上述循环的方式缺点很明显,容易造成死循环。
2. 通过promise来实现
function sleep(ms){
let temple = new Promise(
(resolve) => {
console.log(111);
setTimeout(resolve, ms)
});
return temple;
}
sleep(500).then(function(){
console.log(222);
}) 先输出了111,延迟500ms后输出222
3. 通过async封装
function sleep(ms){
return new Promise((resolve) => setTimeout(resolve, ms));
}
async function test(){
let temple = await sleep(1000);
console.log(1111);
return temple;
}
test(); 延迟1000ms输出了1111.
4. 通过generate来实现
function* sleep(ms){
yield new Promise(function(resolve, reject){
console.log(111);
setTimeout(resolve, ms);
})
}
sleep(500).next().value.then(function(){console.log(2222)}) JavaScript 文章被收录于专栏
前端技术分享

