async await 并发执行的问题
async sleep(i){
return new Promise((resolve, reject) => {
setTimeout(function (){
resolve(i);
}, 1000);
});
}
async start(finsh_callback){
console.time('g');
for (let i = 0; i < 5; i++) {
let res = await this.sleep({
i:i,
});
console.log(res);
}
console.timeEnd('g');
}
执行 start 函数
输出
{ i: 0 }
{ i: 1 }
{ i: 2 }
{ i: 3 }
{ i: 4 }
g: 5003.286ms
本来5个任务,如果异步同时进行,也就是1秒左右。
现在改成了async await 的写法之后,变成了一个接着一个进行,花费了5秒。如果我想多个并发执行,如何解决?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这个也可以实现,但是和 Promise.all是有本质区别的
自己找到答案了
参考文章:https://segmentfault.com/a/11...