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

289
Views
Emita la iteración a través de la matriz y realice una solicitud de obtención de API con cada iteración: obteniendo el estado 429 - a muchas solicitudes

Tengo una matriz de objetos en un estado de reacción actual, quiero iterar a través de cada objeto en la matriz y tomar una idea para hacer una solicitud para cada objeto y obtener información de la API para completar los datos faltantes en el objeto.

Cuando ejecuto el comando, aparece un error 429 que significa que se envían muchas solicitudes antes de que tengan tiempo de procesarlas. Intenté usar un temporizador pero no funcionó. También traté de usar useEffect pero me encontré con el mismo problema. Recurrí a volver a la idea original, que era un bucle for, pero está rompiendo todo.

código:

 function buildCompleteProperties(){ for(let i = 0; i < propertyList.length; i++){ propertyOptions['params'] = {zpid: propertyList[i]['zpid']} axios.request(propertyOptions).then(function (response) { console.log(response.data); }).catch(function (error) { console.error(error); }); } }

Al final, muestra los primeros detalles de la propiedad de las solicitudes. así es como se ve la consola:

 VM7363:1 GET https://zillow-com1.p.rapidapi.com/property?zpid=20471276 429 (Too Many Requests) Error: Request failed with status code 429 at createError (createError.js:16) at settle (settle.js:17) at XMLHttpRequest.onloadend (xhr.js:66) VM7363:1 GET https://zillow-com1.p.rapidapi.com/property?zpid=20471276 429 (Too Many Requests) Error: Request failed with status code 429 at createError (createError.js:16) at settle (settle.js:17) at XMLHttpRequest.onloadend (xhr.js:66) VM7363:1 GET https://zillow-com1.p.rapidapi.com/property?zpid=20471276 429 (Too Many Requests) Error: Request failed with status code 429 at createError (createError.js:16) at settle (settle.js:17) at XMLHttpRequest.onloadend (xhr.js:66) VM7363:1 GET https://zillow-com1.p.rapidapi.com/property?zpid=20471276 429 (Too Many Requests) Error: Request failed with status code 429 at createError (createError.js:16) at settle (settle.js:17) at XMLHttpRequest.onloadend (xhr.js:66) listingProvider: {…}, buildingPermits: null, propertyTaxRate: 0.77, contact_recipients: Array(1), solarPotential: {…}, …} address:
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

El enfoque más sencillo sería hacer una breve pausa después de cada llamada. Puede lograr esto haciendo que su función sea asíncrona y asignando axios.request() a una variable usando await (en lugar de usar la sintaxis .then() después). Establezca el temporizador de suspensión en el valor que sea necesario para mantenerse dentro de las limitaciones de la API.

Así es como lo refactorizaría:

 function sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } async function buildCompleteProperties(){ for(let property of propertyList){ propertyOptions.params = { zpid: property.zpid } try { let { data } = await axios.request(propertyOptions); console.log(data) await sleep(1000) } catch (error){ console.error(error); } } }
about 4 years ago · Juan Pablo Isaza Report

0

Cuando termine la llamada, dispare la siguiente.

 function makeRequests() { let i = 0; function next() { propertyOptions['params'] = { zpid: propertyList[i]['zpid'] }; axios.request(propertyOptions).then(function (response) { console.log(response.data); i++; if (propertyList.length < i) next(); }); } next(); }
about 4 years ago · Juan Pablo Isaza 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!