Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

350
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda