如何在Array.prototype.map()中使用Async和Await

将async / await与map()结合使用可能会有些棘手。了解如何。

您想在内部执行异步功能map()调用,对数组的每个元素执行操作,并返回结果。

你怎么能这样呢?

这是正确的语法:

const list = [1, 2, 3, 4, 5] //...an array filled with values

const functionWithPromise = item => { //a function that returns a promise
  return Promise.resolve('ok')
}

const anAsyncFunction = async item => { return functionWithPromise(item) }

const getData = async () => { return Promise.all(list.map(item => anAsyncFunction(item))) }

getData().then(data => { console.log(data) })

需要注意的主要事情是Promise.all(),当所有诺言都得到解决时,它就会解决。

list.map()返回承诺列表,所以在result解决所有问题后,我们将获得价值。

记住,我们必须包装所有调用的代码await在一个async功能。

承诺文章有关承诺的更多信息,以及异步/等待指南

免费下载我的JavaScript初学者手册


更多js教程: