为了让你的浏览器进入睡眠状态,只需写入这行代码:
1  | await new Promise((_) => setTimeout(_, 2000));  | 
这将使浏览器休眠 2 秒(2000 毫秒)。
请注意,它仅适用于现代浏览器(> 2017)!请参阅 caniuse.com 上 await 的浏览器兼容性。
让我们创建一个可重复使用的睡眠函数
1  | const sleep = (ms = 2000) => new Promise((_) => setTimeout(_, ms));  | 
或者用更古老的符号表示:
1  | function sleep(ms = 2000) {  | 
如果你想探索
Promise的其他功能,你可以浏览 MDN Doc。
如何使用
1  | console.log(`Let's wait for 5s`);  | 
控制台中的结果:
1  | > Let's wait for 5s  | 
顶级 await 问题
在某些旧浏览器/节点版本中,使用顶级 await 可能不起作用。为了解决这个问题,我们可以用立即调用的异步函数包装我们的代码。
1  | (async function () {  | 
旧浏览器中的 sleep 函数关于旧浏览器中的 sleep 函数,请注意:它通常是这样编写的,但绝对不是“性能友好型”。
1  | function sleep(mss) {  |