Cómo usar Async y Await con Array.prototype.map ()

Usar async / await combinado con map () puede ser un poco complicado. Averiguar como.

Quiere ejecutar una función asíncrona dentro de unamap()call, para realizar una operación en cada elemento de la matriz y recuperar los resultados.

¿Cómo puedes hacerlo?

Esta es la sintaxis correcta:

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) })

Lo principal a tener en cuenta es el uso dePromise.all(), que se resuelve cuando se resuelven todas sus promesas.

list.map()devuelve una lista de promesas, por lo que enresultobtendremos el valor cuando todo lo que ejecutamos esté resuelto.

Recuerde, debemos envolver cualquier código que llameawaiten unasyncfunción.

Ver elartículo de promesaspara obtener más información sobre las promesas, yguía asíncrona / en espera.


Más tutoriales de js: