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

384
Vistas
¿Por qué axios.get(url).data no funciona? (solicitudes GET de axios y accesos a propiedades; JavaScript)

Tengo una función asíncrona que solicita un objeto con una propiedad de nombre e identificación. Entiendo que no puede volver a await axios.get(url).data.name sin que lo pateen en la instrucción catch.

Sin embargo, mi pregunta es ¿cuál es la razón por la que no funciona?

 async function getConstellationNameById(id) { const url = `${BASE_URL}/constellations/${id}`; try { return await axios.get(url).data.name; } catch (error) { throw `Constellation with id of ${id} could not be found.`; } }

Si almaceno la solicitud GET en una variable y luego uso la notación de puntos para acceder a la propiedad del nombre, funciona:

 try { //return axios.get(url).data.name; const constellation = await axios.get(url); return constellation.data.name; }

¿Es porque la notación de puntos tiene un tiempo? Por lo tanto, mientras la solicitud GET está en la cola de eventos, la parte .data.name se considera código de sincronización y no obtiene nada. Pensé que, dado que se está ejecutando todo en una línea, los accesores de propiedad se ejecutarían junto con la solicitud GET.

¿O es por otra razón?

También pensé que solo podía acceder a las propiedades de un objeto Promise dentro de .then() y .catch() ; ¿No es ese el caso?

¡Disculpe de antemano si estoy usando mal alguna terminología ya que todavía estoy aprendiendo! Realmente quiero asegurarme de que entiendo el razonamiento antes de continuar.

about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

. tiene mayor prioridad que await , por lo que su código es equivalente a:

 return await (axios.get(url).data.name);

entonces axios.get(url).data.name tendría que ser una Promesa. Pero la promesa que desea esperar es devuelta por axios.get(url) . Agregue paréntesis para forzar la agrupación adecuada:

 return (await axios.get(url)).data.name;
about 4 years ago · Santiago Gelvez 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