Iniciar un temporizador en JavaScript
Aunque la función setTimeout no está diseñada
para crear temporizadores, de todos modos
se pueden hacer con su ayuda, si se utiliza
recursión:
let i = 0;
function timer() {
setTimeout(function() {
console.log(++i);
timer(); // nos llamamos a nosotros mismos
}, 1000);
}
timer();
Detener dicho temporizador se puede simplemente evitando que ocurra la recursión:
let i = 0;
function timer() {
setTimeout(function() {
console.log(++i);
if (i < 10) { // ejecutamos solo si el contador es menor a 10
timer();
}
}, 1000);
}
timer();
Imprime en la consola el número 0. Después de
un segundo imprime el número 1, después de dos
segundos imprime el número 2, después de 3
segundos imprime el número 3. Y así sucesivamente
hasta el infinito.