Heim >Web-Frontend >js-Tutorial >Wie kann ich sicherstellen, dass eine mit „setInterval' aufgerufene Funktion nur einmal ausgeführt wird?
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!