Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

122
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!