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

122
Visualizações
NodeJS: UnhandledPromiseRejection cuando se rechaza la promesa antes de esperar

Tengo dos promesas sin bloques catch al principio y estoy esperando en ambas más tarde con bloques catch . Segunda promesa reject antes de la primera promesa resolve . Entonces, mientras todavía estoy await la primera promesa, la segunda promesa es reject y dado que aún no adjunté la catch , bloquea el servidor con UnhandledPromiseRejection .

¿Hay alguna manera de hacer que el reject de p2 se propague para await p2 , como lo hace en caso de que p2 resolve s?

PD: No puedo adjuntar el retén al principio.

Agregar el código a continuación para referencia. En stackoverflow funciona bien por alguna razón, pero cuando se ejecuta desde local, el servidor falla.

 async function main() { console.log("starting"); let p1 = new Promise((resolve, reject) => { console.log('p1 sleeping'); setTimeout(function() { console.log('p1 awake'); resolve('p1 resolved'); }, 5000); }); let p2 = new Promise((resolve, reject) => { console.log('p2 sleeping'); setTimeout(function() { console.log('p2 awake'); reject('p2 rejected'); //IMPORTANT }, 1000); }); //Below line takes 5 seconds to execute. //But p2 throws error after 1 second because no .catch() is attached to it yet. let out1 = await p1.catch(e => { console.log('p1 errored', e) }); console.log('p1 output', out1); let out2 = await p2.catch(e => { console.log('p2 errored', e) }); console.log('p2 output', out2); } main().then(() => { console.log('stopped') });

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

0

Si ejecuta su código en la consola de desbordamiento de pila, aún arroja un UnhandledPromiseRejection de promesa no controlada porque no está manejando el rechazo de la promesa (puede ver el error en las herramientas de desarrollo de su navegador).

Debería intentar usar Promise.all o manejar cada resultado de Promise con then() y catch() .

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