Výstup každou sekundu
důležitost: 5
Napište funkci vypišČísla(začátek, konec), která každou sekundu vypíše číslo, přičemž začne číslem začátek a skončí číslem konec.
Vytvořte dvě varianty řešení.
- Pomocí
setInterval. - Pomocí vnořeného
setTimeout.
Pomocí setInterval:
function vypišČísla(začátek, konec) {
let aktuální = začátek;
let idČasovače = setInterval(function() {
alert(aktuální);
if (aktuální == konec) {
clearInterval(idČasovače);
}
aktuální++;
}, 1000);
}
// použití:
vypišČísla(5, 10);
Pomocí vnořeného setTimeout:
function vypišČísla(začátek, konec) {
let aktuální = začátek;
setTimeout(function spusť() {
alert(aktuální);
if (aktuální < konec) {
setTimeout(spusť, 1000);
}
aktuální++;
}, 1000);
}
// použití:
vypišČísla(5, 10);
Všimněte si, že v obou řešeních je úvodní prodleva před prvním výstupem. Funkce je poprvé volána za 1000 ms.
Jestliže chceme, aby se funkce spustila okamžitě, můžeme přidat další volání na samostatný řádek, například takto:
function vypišČísla(začátek, konec) {
let aktuální = začátek;
function spusť() {
alert(aktuální);
if (aktuální == konec) {
clearInterval(idČasovače);
}
aktuální++;
}
spusť();
let idČasovače = setInterval(spusť, 1000);
}
vypišČísla(5, 10);