Ajastimen käynnistys JavaScriptissä
Vaikka funktio setTimeout ei ole tarkoitettu
ajastimien luomiseen, niitä voi silti
tehdä sen avulla, jos hyödynnetään
rekursiota:
let i = 0;
function timer() {
setTimeout(function() {
console.log(++i);
timer(); // kutsutaan itseämme
}, 1000);
}
timer();
Tällaisen ajastimen voi pysäyttää yksinkertaisesti estämällä rekursion tapahtumisen:
let i = 0;
function timer() {
setTimeout(function() {
console.log(++i);
if (i < 10) { // käynnistetään vain, jos laskuri on alle 10
timer();
}
}, 1000);
}
timer();
Tulosta konsoliin numero 0.
Kahden sekunnin kuluttua tulosta numero 2, 3
sekunnin kuluttua tulosta numero 3. Ja niin edelleen
äärettömään.