JavaScript-tidsbegivenheder: setTimeout og setInterval

Programmører bruger timinghændelser til at forsinke udførelsen af ​​en bestemt kode eller til at gentage koden med et bestemt interval.

Der er to oprindelige funktioner i JavaScript-biblioteket, der bruges til at udføre disse opgaver: setTimeout()og setInterval().

setTimeout

setTimeout() bruges til at forsinke udførelsen af ​​den beståede funktion med et bestemt tidsrum.

Der er to parametre, som du videregiver til setTimeout(): den funktion, du vil ringe til, og hvor lang tid i millisekunder, der skal forsinke udførelsen af ​​funktionen.

Husk, at der er 1000 millisekunder (ms) på et sekund, så 5000 ms er lig med 5 sekunder.

setTimeout() vil udføre funktionen fra det første argument en gang efter, at den angivne tid er gået.

Eksempel:

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

Når delayTimerfunktionen kaldes, kører den setTimeout. Efter 3 sekunder (3000 ms) passerer det, delayedFunctionhvilket vil sende en alarm.

setInterval

Brug setInterval()til at angive en funktion, der skal gentages med en tidsforsinkelse mellem udførelser.

Igen sendes to parametre til setInterval(): den funktion, du vil ringe til, og hvor lang tid i millisekunder, der skal forsinke hvert opkald i funktionen.

setInterval() fortsætter med at udføre, indtil det er ryddet.

Eksempel:

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

Når din kode kalder funktionen repeatEverySecond, kører den setInterval. setIntervalkører funktionen sendMessagehvert sekund (1000 ms).

clearTimeout og clearInterval

Der er også tilsvarende oprindelige funktioner til at stoppe timinghændelserne: clearTimeout()og clearInterval().

Du har måske bemærket, at hver timerfunktion ovenfor er gemt i en variabel. Når enten funktionen setTimeouteller setIntervalkører, tildeles den et nummer, der gemmes i denne variabel. Bemærk, at JavaScript gør alt dette i baggrunden.

Dette genererede nummer er unikt for hver forekomst af timere. Dette tildelte nummer er også, hvordan timere identificeres, når du vil stoppe dem. Af denne grund skal du altid indstille din timer til en variabel.

For at gøre din kode klarere skal du altid matche clearTimeout()til setTimeout()og clearInterval()til setInterval().

For at stoppe en timer skal du kalde den tilsvarende slettefunktion og give den den timer-id-variabel, der svarer til den timer, du vil stoppe. Syntaksen for clearInterval()og clearTimeout()er den samme.

Eksempel:

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