Der bereitgestellte Code versucht, die Ausführung eines Vorgangs mithilfe der setTimeout-Funktion um 5 Sekunden zu verzögern:
<code class="javascript">function stateChange(newState) { setTimeout('', 5000); if(newState == -1) { alert('VIDEO HAS STOPPED'); } }</code>
Der Code prüft jedoch sofort nach der Planung des Timeouts, ob die Bedingung newState == -1 vorliegt, wodurch die beabsichtigte Verzögerung umgangen wird.
Eine geeignete Lösung beinhaltet die Verwendung von Asynchronität Programmiertechniken, um die Ausführung der if-Anweisung zu verschieben, bis 5 Sekunden vergangen sind. Für Browser können Sie die async/await-Syntax verwenden:
<code class="javascript">// Utility function const delay = ms => new Promise(res => setTimeout(res, ms)); // Function to wait 5 seconds before checking newState const stateChange = async (newState) => { await delay(5000); if (newState == -1) { alert('VIDEO HAS STOPPED'); } };</code>
Für Node.js 16 und höher können Sie das integrierte, auf Versprechen basierende setTimeout:
<code class="javascript">import { setTimeout } from "timers/promises"; const stateChange = async (newState) => { await setTimeout(5000); if (newState == -1) { alert('VIDEO HAS STOPPED'); } };</code>
Das obige ist der detaillierte Inhalt vonWie kann ich die Codeausführung um 5 Sekunden verzögern, nachdem ich ein Timeout festgelegt habe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!