Když potřebuješ nějakou funkci spustit až za nějakou dobu a nebo jí např. spouštět jednou za minutu, použiješ časovače.
Není to úplně přesný
Časovače negarantují, že se kód spustí přesně v určitou dobu.
Když nastavím
setTimeoutna pět sekund, tak mám jistotu, že se dřív nespustí.1. Může se stát, že se spustí třeba až za 5.5 sekundy.
setInterval - opakování
Jednou za x milisekund spustí funkci, kterou tomu předáš.
const interval = setInterval(() => {
console.log("Tohle se spustí jednou za 2 sekundy!")
}, 2_000);
// A takhle to potom z kódu zastavíš, ať to neběží do nekonečna
// clearInterval(interval)setInterval vrací IDčko nastavenýho časovače. Nezapomeň ho clearnout (například v Reactu, když se Ti un-mountne komponenta).
setTimeout - odložení spuštění
Odloží spuštění funkce o x milisekund.
const timeout = setTimeout(() => {
console.log("Tohle se spustí až za 2 sekundy!")
}, 2_000);
// A takhle to potom z kódu zrušíš, aby se to nespustilo
// clearTimeout(interval)setTimeout vrací IDčko nastavenýho časovače. Nezapomeň ho clearnout (například v Reactu, když se Ti un-mountne komponenta).
Footnotes
-
Je to kvůli tomu, jak funguje Event loop. ↩