javascript/node 实现sleep函数
在node的实际操作中,不可避免要遇见等待一段时间之后再进行操作的需求。但是node中并没形如java中的sleep函数,这就需要我们自己写一个类似的函数,以便在js中实现相应的功能。
尝试
需求:在等待3s之后,继续运行剩下的函数。
js中的setTimeout的函数有在等待一段时间之后执行函数的功能,所以我考虑使用setTimeout函数来实现功能。
async function sleep() { await setTimeout(function () { console.log('这是来自3s之后的问好'); },3000) console.log("hello") }
运行以上函数,我们发现setTimeout函数虽然实现了在3秒之后运行函数的功能,但是并没有达到我们的需求。这个程序会将setTimeout的内容在3s之后进行,但是对剩下的函数无影响,加上await也无用。
使用promise重新定义sleep函数
async function test() { console.log('开始啦') await sleep(3000) console.log('这是来自3s之后的问好') } function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)) }
运行改良之后的函数,成功。
**