Me pregunto por qué mi cuenta regresiva no se detuvo en 0, el registro "Se acabó el tiempo" todavía se registra infinitamente.
Aquí está mi código:
let timer = 6; setInterval(function () { if (timer > 0) { timer--; console.log(timer); } else { console.log("Time's Up"); clearInterval(timer); } }, 1000);clearInterval necesita saber la acción que desea cancelar. En este caso, la acción es en realidad su setInterval , así que simplemente asígnela a una variable y use esa variable como parámetro para clearInterval .
const myInterval = setInterval(() => { if (timer > 0) { timer--; console.log(timer); } else { console.log("Time's Up"); clearInterval(myInterval); } }, 1000);Lo que entiendo es que estás usando el temporizador como variable. Entonces, está cometiendo un error, está dando un parámetro incorrecto dentro del método clearInterval. Puede detener el método clearInterval con el código escrito a continuación:
NOTA: - Solo sustituyo console.log con document.write para mostrar la Salida en la pantalla.
var timer = 5; var myinterval = setInterval(function () { if (timer > 0) { timer--; document.write(timer+"<br>"); } else { document.write("Time's Up"); clearInterval(myinterval); } }, 1000);