Nodejs sleep with async/await

  在日常开发过程当中,难免有时候需要自己通过Nodejs mock一些数据,如果直接返回的话,在前端展示层面看起来不太真实,所以需要在Nodejs这一层进行下sleep处理,下面简单记录下使用async/await实现的方法,当然还有一些其他的实现方法,比如generator的实现,原理跟这个差不多,就不赘述了。

1
2
3
4
5
6
7
8
9
10
11
12
13
// ms是需要sleep的毫秒数
const sleep = ms => {
return new Promise(resolve => setTimeout(resolve, ms))
}

// 伪代码如下
async function testSleep() {
console.log('start');
await sleep(3000);
console.log('end');
}

testSleep()

优缺点

缺陷是程序需要在async域里执行。
优点是这种方式实际上是用了setTimeout,没有形成进程阻塞,不会造成性能和负载问题。