Problem:
Das Einführen von Verzögerungen innerhalb einer JavaScript-While-Schleife führt häufig dazu, dass die Schleife ausgeführt wird zu schnell, was zu unerwünschten Ergebnissen führt. Wie können wir eine Schleife erstellen, die Verzögerungen zwischen Iterationen einschließt?
Lösung:
Die Funktion setTimeout() ist zwar nützlich zum Einführen von Verzögerungen, blockiert jedoch nicht und wird ausgeführt sofort. Infolgedessen überlappen sich mehrere setTimeout()-Aufrufe in einer Schleife.
Stattdessen können wir ein rekursives Schleifenmuster verwenden, um den gewünschten Effekt zu erzielen. Hier ist ein Beispiel:
var i = 1; // Set counter to 1 function myLoop() { // Create loop function setTimeout(function() { // Call 3s setTimeout when loop is called console.log('hello'); // Your code here i++; // Increment counter if (i < 10) { // If counter < 10, call loop function again myLoop(); // Trigger another setTimeout() } }, 3000) } myLoop(); // Start the loop
Bei diesem Ansatz ruft sich die Funktion myLoop() rekursiv innerhalb des Rückrufs setTimeout() auf. Jede Iteration wird um 3 Sekunden verzögert, um eine sequentielle Ausführung der Schleife sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie kann ich Verzögerungen in JavaScript-Schleifen implementieren, um überlappende Iterationen zu verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!