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

208
Vistas
No se puede leer el valor de la respuesta de solicitud GET de axios fuera de la función axios

Estoy tratando de crear un rastreador de tareas. BackEnd es mySQL, la API se crea con Node JS y Express JS y el frontend es React JS.

Estoy tratando de asignar a una variable la respuesta que obtengo de la solicitud GET.

la solicitud funciona en PostMan

En mi interfaz, estoy tratando de asignar la variable usando el siguiente código. Como se muestra arriba, la solicitud de obtención funciona en PostMan.

Código

 const baseURL = 'http://localhost:5000/api/user/timesheet/13009'; let y = []; axios.get(baseURL).then((response)=>{ for( var i in response.data){ y.push( response.data[i]); } console.log(y); });

Producción

Esta es la salida en la terminal. Puedo usar índices como y[0] y obtener ese valor en particular. Pero cuando elimino la declaración de impresión y la coloco debajo del código, el valor de y cambia.

 const baseURL = 'http://localhost:5000/api/user/timesheet/13009'; let y = []; axios.get(baseURL).then((response)=>{ for( var i in response.data){ y.push( response.data[i]); } }); console.log(y);

Segunda salida

Obtengo este resultado pero y.length está establecido en 0 y no puedo leer los datos en y.

 const baseURL = 'http://localhost:5000/api/user/timesheet/13009'; let y = []; axios.get(baseURL).then((response)=>{ for( var i in response.data){ y.push( response.data[i]); } }); console.log(y); console.log('y.length'); console.log(y.length); console.log('y[0]'); console.log(y[0]);

Tercera Salida

Esto muestra que no hay valor para el índice y que la matriz está vacía. ¿Qué está causando exactamente este problema y cómo se puede solucionar?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Creo que es porque los trabajos que configuró en "entonces ()" se ejecutan después de que funcionó la solicitud de axios, cuando sus datos se recuperaron con éxito. El código después de la llamada axios (una promesa) se ejecuta antes o al mismo tiempo que la promesa, lo que significa que los datos aún no se han recuperado.

about 4 years ago · Juan Pablo Isaza Denunciar

0

como dijo @ Nevermore1803, axios devolverá su solicitud después de un tiempo.

Por lo tanto, es probable que su matriz y que está enviando los valores de axios a, aún no se haya completado para cuando axios haya respondido a la solicitud.

puedes verlo por ti mismo haciendo lo siguiente

 axios.get(baseURL).then((response)=>{ for( var i in response.data){ y.push( response.data[i]); } console.log('1') }); console.log('2')

Puede ver que 1 vendrá después 2 , por lo que para trabajar con su matriz, antes de intentar usarlo, debe verificar si ya está poblado y luego proceder a trabajar con él.

Una forma de comprobar si tu matriz está vacía es >> if(array.length > 0){... do something}

Además, si está usando reaccionar, debe comenzar a usar sus ganchos, como useState para trabajar con datos como este.

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