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

216
Vistas
Cómo dormir entre cada llamada axios en reaccionar

Estoy escribiendo una aplicación que necesita consultar un RestAPI con un conjunto de entradas. Sin embargo, esa API es muy mala para escalar y devolverá el código 429 si recibe demasiadas solicitudes. Así que estaba tratando de agregar una función de suspensión entre cada llamada axios, pero parece que no funciona. Me pregunto si tengo esta función de suspensión configurada correctamente.

 const sleep = (milliseconds) => { return new Promise(resolve => setTimeout(resolve, milliseconds)) } useEffect(() => { let results = []; async function fetchData(id) { let request = someAPI + id + query; axios.get(request).then((result) => { results.push(result); }).catch((error) => {console.log(error);}); await sleep(2000); } for (let i = 1; i <= 20; i++) { fetchData(i); } },[]);

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

0

No esperó la función fetchData , puede probar esto.

 useEffect(() => { let results = []; async function fetchData(id) { try { const result = await axios.get('') results.push(result); await sleep(2000) } catch(error) { console.log(error); } } (async function() { for (let i = 1; i <= 20; i++) { await fetchData(i); } })() },[]);
about 4 years ago · Juan Pablo Isaza Denunciar

0

En su bucle for, debe await la función fetchData. De esta manera, para cada iteración, el proceso esperará a que se complete fetchData (y, por lo tanto, la llamada anidada a la función de suspensión).

Actualmente, solo está activando las 20 llamadas para fetchData a la vez, sin tener que esperar a la función de suspensión.

 async function fetchAll() { for (let i = 0; i < 20; i++) { await fetchData() } } fetchAll()

Tenga en cuenta que tendrá que envolver su ciclo for en una función asíncrona para poder usar await dentro del ciclo.

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