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

317
Visualizações
¿Qué devuelve una Promesa protegida por un catch()?

Tengo una función asíncrona que se llama al comienzo de mi código, y solo cuando se hace, pueden suceder más cosas. Normalmente sería algo como

 const initialCheck = () => { return fetch('https://reqres.in/api/users') .then(r => { // do things return r }) } const actualStuff = () => { console.log('hello') } initialCheck() .then(r => { actualStuff() })

El objetivo de esta verificación inicial es asegurarse de que el punto final HTTP ( https://reqres.in/api/users ) sea realmente accesible. Por lo tanto, debería tener en cuenta un problema de conexión y mi solución fue catch() el posible error:

 const initialCheck = () => { return fetch('https://thissitedoesnotexistihopeatleast') .then(r => { // do things when the endpoint is available return r }) .catch(err => { // do something when the endpoint is not availble // nothing is returned }) } const actualStuff = () => { console.log('hello') } initialCheck() .then(r => { actualStuff() })

Mi pregunta: ¿por qué funciona el código anterior?

catch() se ejecuta (y el then() en esa función no lo es), no devuelve nada y, a pesar de eso, .then(r => {actualStuff()}) genera lo que se espera ( hello en la consola).

¿Qué recibe then() realmente? (que no return )

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

0

Un .catch encadenado a una Promesa resultará en una Promesa que:

  • se resuelve con el valor devuelto por .catch , si .catch regresa normalmente
  • rechaza con el error, si el .catch mismo arroja un error

Asi que

 const chainedPromise = somePromise.catch(() => { // no errors here // nothing returned })

Si .catch definitivamente no arroja, entonces chainedPromise definitivamente se resolverá (y no rechazará), y dado que no se devuelve nada, chainedPromise se resolverá como undefined .

Asi que

 initialCheck() .then(r => { actualStuff() })

funciona porque initialCheck devuelve una Promesa que resuelve (a undefined ).

Si devolvió algo del .catch y se ingresó el .catch , lo verá en .then encadenado a él más tarde:

 const initialCheck = () => { return fetch('https://doesnotexist') .catch(() => { return 'foo'; }); } const actualStuff = (r) => { console.log(r); console.log('r is foo:', r === 'foo') } initialCheck() .then(r => { actualStuff(r); })

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