Bei der Arbeit in JavaScript ist die Steuerung des Ausführungsflusses von größter Bedeutung. Stellen Sie sich das folgende Szenario vor: Sie benötigen eine Funktion, die 5 Sekunden lang pausiert, bevor sie eine bestimmte Aktion ausführt, z. B. die Überprüfung des Werts einer Variablen.
Traditionell haben sich JavaScript-Entwickler auf die Funktion setTimeout verlassen, um Verzögerungen bei der Ausführung einzuführen. Diese Funktion benötigt zwei Parameter: eine Zeichenfolge, die den auszuführenden Code darstellt, und eine in Millisekunden ausgedrückte Verzögerung. In Ihrem speziellen Fall reicht der folgende Codeauszug nicht aus:
<br>function stateChange(newState) {<br> setTimeout('', 5000);</p> <p> if (newState == -1) {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">alert('VIDEO HAS STOPPED');
}
}
Das Problem hierbei ist, dass die leere Zeichenfolge, die an setTimeout übergeben wird, dies nicht tut Hat keine Wirkung. Um eine Verzögerung von 5 Sekunden vor der Überprüfung der newState-Variablen zu erstellen, sollten Sie den Code wie folgt ändern:
<br>function stateChange(newState) {<br> setTimeout(() = > {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">if (newState == -1) { alert('VIDEO HAS STOPPED'); }
}, 5000);
}
Durch die Angabe einer Funktion als erstes Argument geben Sie den Code an nach der Verzögerung ausgeführt werden. Jetzt hält die Funktion genau 5 Sekunden lang an, bevor sie den neuen Status überprüft.
In modernem JavaScript können Sie auch async/ nutzen. Ich warte darauf, das gleiche Ergebnis zu erzielen. Async/await vereinfacht asynchrone Vorgänge und macht Ihren Code lesbarer. So implementieren Sie es für Ihr Szenario:
<br>const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));</p> <p>async function stateChange(newState) {<br>wait delay(5000);</p> <p>if (newState == -1 ) {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">alert('VIDEO HAS STOPPED');
}
}
Dieser Code verwendet die Verzögerungsfunktion, die ein Promise zurückgibt, das nach der angegebenen Verzögerung aufgelöst wird. Durch die Verwendung von async/await deklarieren Sie die stateChange-Funktion als asynchrone Funktion und warten auf den Abschluss der Verzögerung, wobei Sie eine 5-sekündige Pause einhalten, bevor Sie den newState überprüfen.
Das obige ist der detaillierte Inhalt vonWie kann ich in JavaScript eine Verzögerung von 5 Sekunden erstellen, bevor die nächste Codezeile ausgeführt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!