Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie kann ich in JavaScript eine Verzögerung von 5 Sekunden erstellen, bevor die nächste Codezeile ausgeführt wird?

Patricia Arquette
Freigeben: 2024-10-25 17:07:03
Original
390 Leute haben es durchsucht

How can I create a 5-second delay in JavaScript before executing the next line of code?

So warten Sie 5 Sekunden, bevor Sie die nächste Zeile ausführen


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.


Verwenden der setTimeout-Funktion


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');
Nach dem Login kopieren
Nach dem Login kopieren

}
}

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');
}
Nach dem Login kopieren

}, 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.


Alternative Solutions


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');
Nach dem Login kopieren
Nach dem Login kopieren

}
}

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!

Quelle:php.cn
Vorheriger Artikel:Wie greife ich über das Inhaltsskript von Gmail in einer Chrome-Erweiterung auf globale Variablen zu? Nächster Artikel:Hier sind einige Titeloptionen, die den Kriterien entsprechen: * Relative vs. absolute Pfade in JavaScript: Wann welche verwenden? * JavaScript-Pfade: Absolut oder relativ? Ein Leitfaden für Leistung und Sicherheit. * W
Erklärung dieser Website
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
Neueste Artikel des Autors
Aktuelle Ausgaben
verwandte Themen
Mehr>
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!