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

112
Vistas
¿Cómo crear una nueva promesa de búsqueda de respuesta?

Tengo una función similar al código a continuación: hace una fetch , hace cosas cuando la llamada es exitosa o no, y devuelve una promesa de ser manejada en sentido descendente:

 const myFunc = (): Response => { return fetch('http://something') .then(r => { console.log('the call went through, the return code does not matter') return r }) .catch(err => { console.error(`ah crap, the call failed completely: ${err}`) // and here I do not know how to return a new Response } } } myFunc().then(r => { console.log('do something once myFunc is over') })

Mi intención es ejecutar algún código una vez que myFunc haya terminado, pero debo tener en cuenta el caso de que la llamada falle por completo (sin resolución de DNS, llamada rechazada, ...). Para eso, necesito crear y devolver en el catch() una promesa de Response con, por ejemplo, un código de retorno 503 forzado (que no es realmente correcto porque el servidor ni siquiera respondió, pero de todos modos).

Mi pregunta: ¿cómo puedo crear tal promesa de Response ?

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

0

Lo alentaría a que no convierta una falla de red en una aparente falla de HTTP (503), pero dado que ha preguntado específicamente cómo hacerlo, puede hacerlo creando su propio objeto de Response :

 const myFunc = (): Response => { return fetch("http://something") .catch(err => { console.error(`the call failed completely: ${err}`) return new Response(null, { status: 503, statusText: "Fake 503", }); }); };

o si desea utilizar una función async :

 const myFunc = async (): Response => { try { return await fetch("http://something"); } catch (err) { console.error(`the call failed completely: ${err}`) return new Response(null, { status: 503, statusText: "Fake 503", }); } };

(Tenga en cuenta que no hay necesidad de su .then en el primero (a menos que quiera hacer el console.log ).)

Pero , te recomiendo encarecidamente que no hagas eso. En su lugar, maneje esto en el punto de la llamada, a través de un controlador .finally (o un bloque try / finally en una función async ).

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