Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

157
Visualizações
Manera correcta de manejar el máximo de trabajos asincrónicos/en espera independientes y dependientes (Promesas)

Tengo cuatro procesos asincrónicos que obtienen de diferentes fuentes, a saber, el proceso A, B, C y D.

Los procesos A, B y C son independientes entre sí, pero D depende de los datos de C.

En la medida de lo posible, quiero que A y B se obtengan de forma independiente en C y D, pero quiero conservar el resultado de A, B, C y D para el siguiente procedimiento.

Así que estoy tratando de encontrar la forma correcta de expresar esta funcionalidad.

Algo como

 const results = await Promise.allSettled([A, B, C]); const resultD = await D(results[2].value);

significa que estoy esperando para realizar D hasta que A, B, C hayan terminado, pero en este caso, A o B pueden tomar mucho más tiempo que C.

Igualmente,

 const results = await Promise.allSettled([A, B, C, D(await C)]);

¿No parece del todo correcto? No quiero que C se realice dos veces, y también quiero conservar el resultado.

¿Cuál sería la forma correcta de resolver esto con elegancia?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Puede agrupar C y D y resolverlo con A y B

Entendamos el fragmento a continuación:

Considere las funciones A , B , C y D equivalentes a la obtención de cuatro API diferentes. Además, observe cómo D necesita algunos datos, que obtendría de C .

Y en la función main estamos resolviendo A , B independientemente y estamos resolviendo D solo después de que C haya terminado.

 const sleep = (delay, data) => new Promise(res => setTimeout(() => res(data), delay)); const A = () => sleep(100).then(() => "A") const B = () => sleep(200).then(() => "B") const C = () => sleep(100).then(() => "C") const D = (inp) => sleep(100).then(() => inp + "D") function main() { const promises = [A(), B(), C().then(res => D(res))]; Promise.all(promises).then(console.log); } main();

También puede usar Promise.allSettled pero asegúrese de comprender la diferencia entre allSettled y all .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda