JavaScript Időzítési események: setTimeout és setInterval

A programozók időzítési eseményeket használnak bizonyos kódok végrehajtásának késleltetésére vagy a kód meghatározott időközönként történő megismétlésére.

A JavaScript könyvtárban két natív függvény van, amelyet ezeknek a feladatoknak a végrehajtására használnak: setTimeout()és setInterval().

setTimeout

setTimeout() arra szolgál, hogy az átadott függvény végrehajtását meghatározott idővel késleltesse.

Két paraméter adható át setTimeout(): a meghívni kívánt funkció, valamint az az idő milliszekundumban, amely késlelteti a függvény végrehajtását.

Ne feledje, hogy 1 másodperc alatt 1000 milliszekundum (ms) van, tehát 5000 ms egyenlő 5 másodperccel.

setTimeout() a függvényt az első argumentumból hajtja végre egyszer a megadott idő letelte után.

Példa:

let timeoutID; function delayTimer() { timeoutID = setTimeout(delayedFunction, 3000); } function delayedFunction() { alert(“Three seconds have elapsed.”); }

Amikor a delayTimerfüggvényt hívják, akkor futni fog setTimeout. 3 másodperc (3000 ms) elteltével végrehajtja delayedFunctiona figyelmeztetést.

setInterval

Használja setInterval()a végrehajtások közötti késleltetéssel megismételhető funkció megadását.

Ismét két paramétert adunk át setInterval(): a meghívni kívánt függvénynek, valamint a függvény minden egyes hívásának késleltetéséhez szükséges idő milliszekundumban.

setInterval() addig folytatja, amíg ki nem tisztázzák.

Példa:

let intervalID; function repeatEverySecond() { intervalID = setInterval(sendMessage, 1000); } function sendMessage() { console.log(“One second elapsed.”); }

Amikor a kód meghívja a függvényt repeatEverySecond, akkor futni fog setInterval. másodpercenként (1000 ms) setIntervalfuttatja a funkciót sendMessage.

clearTimeout és clearInterval

Az időzítési események leállításához megfelelő natív funkciók is vannak: clearTimeout()és clearInterval().

Talán észrevette, hogy a fenti időzítő funkciók egy változóba vannak mentve. Amikor a setTimeoutvagy a setIntervalfüggvény fut, hozzárendel egy számot, amely menti ezt a változót. Ne feledje, hogy a JavaScript mindezt a háttérben végzi.

Ez a generált szám egyedi az időzítők minden példányához. Ez a hozzárendelt szám azonosítja az időzítőket is, amikor le akarja állítani őket. Ezért az időzítőt mindig változóra kell állítania.

A kód egyértelműsége érdekében mindig illeszkednie clearTimeout()kell a setTimeout()és a clearInterval()pontokhoz setInterval().

Az időzítő leállításához hívja meg a megfelelő törlés funkciót, és adja át neki az időzítő ID változót, amely megegyezik a leállítani kívánt időzítővel. A szintaxis clearInterval()és clearTimeout()ugyanaz.

Példa:

let timeoutID; function delayTimer() { timeoutID = setTimeout(delayedFunction, 3000); } function delayedFunction() { alert(“Three seconds have elapsed.”); } function clearAlert() { clearTimeout(timeoutID); }