js中不存在自带的sleep方法,要想休眠要自己定义个方法,现将自己使用的方法整理如下,后续如果有更优雅的方法,我会再来补充,也欢迎大家多提意见。
1、for循环法
function sleep(d){
for(var t = Date.now();Date.now() - t <= d;);
}
sleep(5000); //当前方法暂停5秒
利用for循环的这种写法是最简单也最糟糕的方法,如上的代码其实并没有让脚本解释器sleep下来,而且有让CPU迅速上到高负荷的附作用。浏览器甚至会在该段时间内处于假死状态。
2、利用setTimeout
async function test() {
console.log('Hello')
await sleep(1000)
console.log('world!')
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms))
}
test()