Hacemos una verificación exhaustiva cada enunciado en nuestra página web con la meta de mostrarte en todo momento la información con la mayor veracidad y certera.
Solución:
Utilice Array.prototype.map y Promise.all:
async function procesMultipleCandidates (data)
let generatedResponse = []
await Promise.all(data.map(async (elem) =>
try
// here candidate data is inserted into
let insertResponse = await insertionInCandidate(elem)
// and response need to be added into final response array
generatedResponse.push(insertResponse)
catch (error)
console.log('error'+ error);
))
console.log('complete all') // gets loged first
return generatedResponse // return without waiting for process of
O usa un for/of
bucle si no desea que el bucle se ejecute en paralelo:
async function procesMultipleCandidates (data)
let generatedResponse = []
for(let elem of data)
try
// here candidate data is inserted into
let insertResponse = await insertionInCandidate(elem)
// and response need to be added into final response array
generatedResponse.push(insertResponse)
catch (error)
console.log('error'+ error);
console.log('complete all') // gets loged first
return generatedResponse // return without waiting for process of
Array.prototype.forEach()
intenta ejecutarse secuencialmente y es posible que no siempre obtenga el resultado esperado.
Array.prototype.map()
es el ampliamente utilizado para crear Promesas usando datos y luego resuelto usando await Promise.all([])
usando
.map()
función, todas las promesas se resuelven en paralelo y si llama a una API, puede terminar obteniendoerror 429: Too many Requests
Para ejecutar todas las promesas secuencialmente, puede usar for ...of
.
const array1 = ['a', 'b', 'c'];
for (const element of array1)
console.log(element);
Referencia MDN
Tienes la opción de avalar nuestra función fijando un comentario y dejando una puntuación te damos las gracias.