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

346
Views
¿El tiempo de espera de setInterval () es después de que se llamó al anterior o después de que se hizo? / ¿Cómo controlar el tiempo de espera entre iteraciones de bucle?

Estoy tratando de usar setInterval para llamar a una API que tiene un límite de velocidad para las solicitudes por segundo. Traté de usar setInterval como un ciclo while, pero no puedo encontrar información sobre cuándo comienza la siguiente ronda.

Entonces si hago:

 setInterval(() => { CallAPI(); // Some proccessing }, 300)

¿Comenzará la próxima ronda después de que termine la primera o independientemente de ella? porque el orden importa, y también el tiempo puede causar un error.

También puedo intentar hacer lo mismo con setTimeout y un ciclo while como este:

 while(true) { setTimeout(() => { CallAPI(); // do some proccessing }), 300 }

Pero nuevamente, no estoy seguro de cuándo comenzará la próxima ronda del bucle.

Y, por último, hago trampa a mi manera y hago

 while(true) { await CallAPI(); // Do proccessing await setTimeout(() => true, 300) }

Entonces, ¿cuál es el orden de setTimeout() y setInterval() en un ciclo?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Simplemente llámelo cuando termine de ejecutarse. No hay necesidad de un bucle.

 function fakeCall () { return new Promise((resolve) => { window.setTimeout(resolve, Math.random() * 2); }); } function next() { window.setTimeout( async function () { await fakeCall(); console.log(Date.now()); next(); }, 3000); } next();

about 4 years ago · Juan Pablo Isaza Report

0

Probablemente querrá configurar su ciclo de la siguiente manera:

 var TO_asyncLoop = null; function asyncLoop(fn, ms){ clearTimeout(TO_asyncLoop); TO_asyncLoop = setTimeout(() => { fn() }, ms) } var i = 0; function doSomething(){ // do somthing console.log("hi", i++); // when this "something" is finished, do it again: asyncLoop(doSomething, 500) } doSomething()

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!