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

461
Views
¿Cómo manipular una respuesta de axios y devolver una promesa?

¿Cuál es la forma correcta de manipular el valor de retorno de una solicitud async realizada con " axios " y devolver otra Promise ?

Éste:

 return axios.get('/home.json') .then(({ data, ...res }) => new Promise({ data: data.json(), ...res }) )

o

 return new Promise(() => { const { data, ...res } = await axios.get('/home.json') return { data: data.json(), ...res } })

...¿O ninguno de los anteriores?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Dado que axios.get() ya devuelve una promesa, puede simplemente construir sobre la cadena de promesa y devolver su valor final desde el final de la cadena y se convertirá en el valor resuelto de toda la cadena de promesa que volverá a la persona que llama:

 return axios.get('/home.json').then(data) => // build whatever return value you want here and just return it // it will be the resolved value of the parent promise/chain // If you want to pack it into an object, you can do so here return {data: data}; });

Si necesita alguna otra operación asíncrona para desempaquetar los datos y generar su resultado final, simplemente agregue esa operación asíncrona a la cadena de promesa anterior (devolviendo una promesa desde dentro de la cadena).

PD: no entiendo por qué está pensando que .then(({ data, ...res }) es el formato adecuado para un resultado de promesa de axios. Lo mejor que puedo decir de la documentación, no lo es. Resuelve con un valor, el resultado de la solicitud. Además, no hay .json() con axios. Ya analiza los resultados de JSON por usted (a diferencia de fetch() ).

Si quisiera que esto funcionara con fetch() donde tiene que leer y analizar el json por separado, podría hacer esto:

 return fetch('/home.json').then(response) => return response.json(); }).then(result => { // create whatever final result value you want and return it return {data: result}; });

_

about 4 years ago · Juan Pablo Isaza Report

0

Siento que la mejor manera de hacerlo es usar async-await dentro de un bloque try-catch . Código de muestra:

 const getApi = async() => { try{ const {data, ...res} = await axios.get('/home.json') // this data is already in json usable format }catch(e){ console.log('This error occurred',e) } }
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!