Async/Await 版本
function sleep(delay) { return new Promise(reslove => { setTimeout(reslove, delay) }) } !async function test() { const t1 = +new Date() await sleep(3000) const t2 = +new Date() console.log(t2 - t1) }()
更优雅的写法
function sleep (time) { return new Promise((resolve) => setTimeout(resolve, time)); } // 用法 sleep(500).then(() => { // 这里写sleep之后需要去做的事情 })
开源的力量
const sleep = require("sleep") const t1 = +new Date() sleep.msleep(3000) const t2 = +new Date() console.log(t2 - t1)
优点:能够实现更加精细的时间精确度,而且看起来就是真的 sleep 函数,清晰直白。
缺点:缺点需要安装这个模块,^_^,这也许算不上什么缺点。