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

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

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