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

466
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 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