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

196
Vistas
¿Cómo enviar una solicitud GET con SetTimeout y obtener datos si aún no está listo?

Al hacer clic en Enviar, envío una solicitud POST con algunos datos al servidor y, en respuesta, obtengo un objeto con identificación y tiempo de espera . Luego, necesito establecer el tiempo de espera y, cuando llegue el momento, enviar una solicitud GET para los datos. El problema es que los datos aún no están listos y no estoy definido y mi aplicación React falla.

Me dijeron que el tiempo de espera debería ser solo desde la primera solicitud (quiero decir que no puedo aumentarlo manualmente o hacer algo como esto: timeout * 2 , necesito usar el tiempo de espera solo desde la primera solicitud). ¿Cómo puedo hacer eso? Creo que se puede hacer de alguna manera con el bucle While... pero no soy lo suficientemente inteligente como para escribir este código. Por favor ayuda

 const [someData, setSomeData] = useState({}) // here comes undefined and app crashes because this object renders in DOM const getData = async (id) => { const response = await fetch(`$BASE_URL/${id}`) setSomeData(response) } const onSubmit = async (data) => { const { id, timeout } = await fetch(url, data) setTimeOut(() => { getData(id) // data is not ready and I get undefined }, timeout) // its around 1000ms and I can't change it mannually }

Si hago esto entonces todo funciona bien

 const getData = async (id) => { const response = await fetch(`$BASE_URL/${id}`) setSomeData(response) } const onSubmit = async (data) => { const { id, timeout } = await fetch(url, data) setTimeOut(() => { getData(id) }, 6000) // if I manually specify timeout to 6000 }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

fetch devolverá una promesa, podrías usarla para getData.

 const onSubmit = async (data) => { fetch(url, data) .then(res => return res.json()) .then(res => getData(res.id)) }
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