JavaScript-Timing-Ereignisse: setTimeout und setInterval

Programmierer verwenden Timing-Ereignisse, um die Ausführung bestimmter Codes zu verzögern oder um Code in einem bestimmten Intervall zu wiederholen.

In der JavaScript-Bibliothek gibt es zwei native Funktionen, mit denen diese Aufgaben ausgeführt werden: setTimeout()und setInterval().

setTimeout

setTimeout() wird verwendet, um die Ausführung der übergebenen Funktion um eine bestimmte Zeitspanne zu verzögern.

Es gibt zwei Parameter, an die Sie übergeben setTimeout(): die Funktion, die Sie aufrufen möchten, und die Zeit in Millisekunden, um die Ausführung der Funktion zu verzögern.

Denken Sie daran, dass eine Millisekunde 1000 Millisekunden (ms) enthält, sodass 5000 ms 5 Sekunden entsprechen.

setTimeout() führt die Funktion ab dem ersten Argument einmal nach Ablauf der angegebenen Zeit aus.

Beispiel:

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

Wenn die delayTimerFunktion aufgerufen wird, wird sie ausgeführt setTimeout. Nach 3 Sekunden (3000 ms) wird ausgeführt, delayedFunctionwodurch eine Warnung gesendet wird.

setInterval

Verwenden Sie setInterval()diese Option, um eine Funktion anzugeben, die mit einer Zeitverzögerung zwischen den Ausführungen wiederholt werden soll.

Auch hier werden zwei Parameter übergeben setInterval(): die Funktion, die Sie aufrufen möchten, und die Zeit in Millisekunden, um jeden Aufruf der Funktion zu verzögern.

setInterval() wird so lange ausgeführt, bis es gelöscht wird.

Beispiel:

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

Wenn Ihr Code die Funktion aufruft repeatEverySecond, wird sie ausgeführt setInterval. setIntervalführt die Funktion sendMessagejede Sekunde aus (1000 ms).

clearTimeout und clearInterval

Es gibt auch entsprechende native Funktionen zum Stoppen der Timing-Ereignisse: clearTimeout()und clearInterval().

Möglicherweise haben Sie bemerkt, dass jede der oben genannten Timerfunktionen in einer Variablen gespeichert ist. Wenn entweder die Funktion setTimeoutoder ausgeführt setIntervalwird, wird ihr eine Nummer zugewiesen, die in dieser Variablen gespeichert wird. Beachten Sie, dass JavaScript dies alles im Hintergrund tut.

Diese generierte Nummer ist für jede Instanz von Timern eindeutig. Mit dieser zugewiesenen Nummer werden auch Timer identifiziert, wenn Sie sie stoppen möchten. Aus diesem Grund müssen Sie Ihren Timer immer auf eine Variable einstellen.

Aus Gründen der Klarheit des Codes, sollten Sie immer passen clearTimeout()auf setTimeout()und clearInterval()zu setInterval().

Um einen Timer zu stoppen, rufen Sie die entsprechende Löschfunktion auf und übergeben Sie ihr die Timer-ID-Variable, die dem Timer entspricht, den Sie stoppen möchten. Die Syntax für clearInterval()und clearTimeout()ist dieselbe.

Beispiel:

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