Heim >Web-Frontend >js-Tutorial >Wie kann ich sicherstellen, dass eine mit „setInterval' aufgerufene Funktion nur einmal ausgeführt wird?

Wie kann ich sicherstellen, dass eine mit „setInterval' aufgerufene Funktion nur einmal ausgeführt wird?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-04 01:54:11365Durchsuche

How Can I Ensure a Function Called with `setInterval` Executes Only Once?

Geplante Funktionen mit setInterval und clearInterval verwalten

Betrachten Sie das folgende Codefragment:

function doKeyDown(event) {
    switch (event.keyCode) {
        case 32:
            /* Space bar was pressed */
            if (x == 4) {
                setInterval(drawAll, 20);
            }
            else {
                setInterval(drawAll, 20);
                x += dx;
            }
            break;
    }
}

Das Ziel ist Rufen Sie die Funktion „drawAll“ nur einmal auf und erstellen Sie keine Schleife, die wiederholt aufgerufen wird it.

Verwenden von „clearInterval“, um die wiederkehrende Ausführung zu stoppen

setInterval richtet einen wiederkehrenden Timer ein, der die angegebene Funktion regelmäßig aufruft. Um die Ausführung zu stoppen, können wir „clearInterval“ verwenden. So funktioniert es:

var handle = setInterval(drawAll, 20);

// When you want to stop it:
clearInterval(handle);
handle = 0; // Indication of an uncleared interval

In Browsern ist das Handle garantiert ein numerischer Wert ungleich Null. Daher dient das Setzen von handle = 0 als praktisches Flag, um anzuzeigen, dass das Intervall gelöscht wurde.

Planen eines einmaligen Funktionsaufrufs

Wenn dies beabsichtigt ist Wenn Sie eine Funktion nur einmal ausführen, sollten Sie stattdessen die Verwendung von setTimeout in Betracht ziehen. Diese Funktion plant, dass eine Funktion nach einem bestimmten Zeitintervall aufgerufen wird, löst sie danach jedoch nicht weiter aus. Außerdem wird ein Handle für eine mögliche Stornierung zurückgegeben.

setTimeout(drawAll, 20);

Das obige ist der detaillierte Inhalt vonWie kann ich sicherstellen, dass eine mit „setInterval' aufgerufene Funktion nur einmal ausgeführt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn