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

377
Vistas
Proceso en segundo plano de NestJS que obtiene datos en 5 acciones paralelas

Estoy trabajando en una API de NestJS que recibe algunos códigos de artículos y los guarda en una base de datos con estado como queue y luego quiero crear un proceso en segundo plano que busque artículos con estado de queue y obtenga un sitio web con ese código y complete la información sobre ese ID de artículo.

Quiero que obtenga códigos en 5 rutinas paralelas, cada una debe obtener un nuevo código de la lista tan pronto como termine de obtener el código actual.

La forma en que está construido en este momento, obtiene 5 códigos y usa Promise.all pero lo que no me gusta de este enfoque es que si uno de los espera es significativamente más lento que el otro, todos van por el más lento.

 const promiseResult = await Promise.all(promiseList);

¿Qué enfoque es el mejor para mí para aprender a fin de lograr lo que estoy planeando hacer?

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

0

Básicamente haces tu trabajo cuando se cumplen todas las promesas. Tienes razón cuando dices que esperas al más lento, ya que esto es exactamente lo await Promise.all(promiseList) .

Ahora debe preguntarse si puede procesar las promesas más rápidas mientras espera la más lenta. Si es así, puede iterar sus promesas y definir un .then() para ellas:

 for (let promise of promiseList) { promise.then((value) => { //Do something }); }

De esta manera, todas sus promesas tienen un controlador then para el caso en que se cumple la promesa y su Javascript fluye normalmente, sin esperar ninguna de las promesas. Una vez que se cumple cada promesa, el bucle de eventos detectará que ocurrió un evento y llamará a su función de devolución de llamada (en el caso del ejemplo anterior then la función de flecha dentro de la llamada).

Tenga en cuenta then la devolución de llamada nunca debe suponer que las otras promesas también se completaron, pero eso no debería ser un problema en su caso, porque desea trabajar cuando su lista de promesas también se completó parcialmente.

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