如何在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教程: