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

347
Views
¿Por qué clearInterval no se detiene inmediatamente en heroku?

Alojé mi aplicación en Heroku y quiero detener la función setInterval en una determinada condición. Funciona bien en mi computadora local pero no en Heroku. En Heroku, mi función "updateLine()" todavía se llama tres veces después de que se cumple la condición newEndX >= 800 y se llama a clearInterval(intervalID) ;

¿Por qué se sigue llamando a "updateLine()" y por qué tres veces? ¿Heroku funciona de manera diferente a nuestra computadora local?

 intervalID = setInterval(function () { if (newEndX < 800) { updateLine(); } if (newEndX >= 800) { clearInterval(intervalID); alert("You reached the end of the canvas. Please click 'reset' button to startover.") console.log("reached the end of the canvas.") console.log("The final startX is", newStartX); console.log("The final endX is", newEndX); } }, 200);

Actualización: el problema probablemente se deba a algunos problemas desconocidos en Heroku o en mi navegador. Este código funciona bien en la computadora de mis compañeros de clase y en su página de Heroku.

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

0

No tengo idea de qué podría causar la diferencia entre la máquina local y Heroku, pero tal vez la función setTimeout se ajuste mejor a este caso de uso y pueda resolver el problema.

setTimeout llama a una función una vez después de un retraso. Pero la función puede tener una verificación de la condición y configurar setTimeout para llamarse a sí mismo nuevamente si la condición pasa o simplemente salir si falla.

La llamada setTimeout se puede usar en lugar de la llamada setInterval en su ejemplo de esta manera:

 function periodicFunction() { // do something // should be called again? -> setTimeout if (newEndX < 800) { updateLine(); setTimeout(periodicFunction, 200); // otherwise just finish the work without calling setTimeout } else { alert("You reached the end of the canvas. Please click 'reset' button to startover.") console.log("reached the end of the canvas.") console.log("The final startX is", newStartX); console.log("The final endX is", newEndX); } } // initial call setTimeout(periodicFunction, 200);
about 4 years ago · Juan Pablo Isaza Report

0

setInterval es una función de JavaScript que forma una cola para las solicitudes. No se detiene incluso si ocurre un error hasta que obtiene clearInterval. Esto se debe al temporizador interno del navegador y al retraso en las solicitudes que setInterval tiene en cola.

Si la demora aumenta, setInterval no se detendrá y llamará a la función una y otra vez.

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!