Ich habe den folgenden Code:
%Vor% Hat jemand einen Vorschlag darüber, wie ich jede Schleifeniteration in for loop
verzögern kann? Angenommen, der Code wartet 10 Sekunden nach Abschluss jeder Iteration. Ich habe setTimeout
ausprobiert, aber das hat nicht funktioniert.
Sie können ein Zeitlimit für die Ausführung des Codes in aufsteigenden Intervallen wie folgt setzen:
%Vor%So läuft der erste sofort (Intervall * 0 ist 0), der zweite läuft nach zehn Sekunden usw.
Sie müssen i
als letzten Parameter in setTimeout()
senden, damit sein Wert an das Funktionsargument gebunden wird. Andernfalls wird der Versuch, auf den Array-Wert zuzugreifen, außerhalb des zulässigen Bereichs liegen und Sie erhalten undefined
.
Eine andere Alternative wäre die Verwendung von async.eachSeries
. Zum Beispiel:
Da Sie bereits async
verwenden, wäre async.wilst
eine gute Ergänzung für for
.
whilst
ist eine asynchrone while
-ähnliche Funktion. Jede Iteration wird nur ausgeführt, nachdem die vorherige Iteration ihren Abschlussrückruf aufgerufen hat. In diesem Fall können wir die Ausführung des Completion Callbacks einfach um 10 Sekunden mit setTimeout
zurückstellen.
Tags und Links javascript node.js for-loop