Javascript中forEach的异步问题

Posted gs456

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript中forEach的异步问题相关的知识,希望对你有一定的参考价值。

某天尝试了下在 forEach函数中调用 await Promise() 方法,如下:

var arr = [1,2,3]

arr.forEach(async (v,i,a)=>

  await Promise()

)

发现并没有按照想象中等到上一个Promise 处理完成后再执行下个Promise。

经过查阅资料后发现,实际forEach函数内部是异步的,遇到这种问题请使用for循环,如下:

var arr = [1,2,3]

for(let i=0;i<arr.length;i++)

  await Promise()

即可解决问题,具体原理待下次补充

 

以上是关于Javascript中forEach的异步问题的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 循环中调用异步函数的三种方法,及为什么 forEach 无法工作的分析

JavaScript 循环中调用异步函数的三种方法,及为什么 forEach 无法工作的分析

我们可以对 JavaScript forEach 异步执行回调吗? [复制]

NodeJs, javascript: .forEach 似乎是异步的?需要同步

JavaScript 的 foreach 用不了 break/continue?同样写法下 for 循环也不行

JavaScript 的 foreach 用不了 break/continue?同样写法下 for 循环也不行