Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

97
Vistas
Cómo convertir múltiples promesas que dependen de la respuesta de cada uno en espera y asegurarse de que todas las solicitudes se activen

Tengo una matriz de objetos que tiene 3 elementos dentro. Estoy iterando sobre él y durante cada ciclo necesito hacer 3 llamadas API que dependen de la respuesta de cada uno. Entonces, en total, debe haber 9 solicitudes de API completadas.

 const arrayOfObjects = [ { first: 'thing', second: 'thing', third: 'thing' }, { fourth: 'thing', fifth: 'thing', sixth: 'thing' }, { seventh: 'thing', eight: 'thing', ninth: 'thing' }, ] const makeModuleAndBatteryPromises = () => { arrayOfObjects.map((obj) => { createModules(obj.first).then((response) => { createBattery(response, obj.second).then(res => { assignAssets(res, obj.third).then(res => 'assignment done!'); }); }); }); } makeModuleAndBatteryPromises();

Entonces, mirando el código anterior, parece que realmente solo tengo control sobre las primeras 3 llamadas API en el primer bucle de arrayOfObjects. Como tengo assignAssets(res).then(res => 'assignment done!'); lo que me permitirá realizar alguna operación como actualizar la página o redirigir una vez que la tercera promesa se resuelva en el primer bucle.

Sin embargo, necesito hacer alguna operación en la novena/última promesa. Esto es lo que intenté para que fuera asíncrono.

 const makeModuleAndBatteryPromises = async () => { const promises = arrayOfObjects.map(async obj => { const firstResponse = await createModules(obj.first); const secondResponse = await createModules(firstResponse, obj.second); await assignAssets(secondResponse); }); await Promise.all(promises) .then(res => //do some action after all 9 promises resolved) } makeModuleAndBatteryPromises()

No estoy logrando lo que esperaba, ¿alguien puede decirme lo que me estoy perdiendo?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

si entiendo correctamente, ¿quiere el valor resuelto de los activos asignados finales?

Posiblemente te hayas confundido con una combinación de async / await y .then

 const makeModuleAndBatteryPromises = async() => { const promises = arrayOfObjects.map(async obj => { const firstResponse = await createModules(obj.first); const secondResponse = await createModules(firstResponse, obj.second); return assignAssets(secondResponse); }); const res = await Promise.all(promises); const finalValue = res.at(-1); // or res[res.length-1]; // do things with finalValue } makeModuleAndBatteryPromises()
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda