Heim > Web-Frontend > js-Tutorial > Wie kann ich die Codeausführung um 5 Sekunden verzögern, nachdem ich ein Timeout festgelegt habe?

Wie kann ich die Codeausführung um 5 Sekunden verzögern, nachdem ich ein Timeout festgelegt habe?

Barbara Streisand
Freigeben: 2024-10-26 03:26:27
Original
333 Leute haben es durchsucht

How Can I Delay Code Execution for 5 Seconds After Setting a Timeout?

Codeausführung um 5 Sekunden verzögern

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

Der Code prüft jedoch sofort nach der Planung des Timeouts, ob die Bedingung newState == -1 vorliegt, wodurch die beabsichtigte Verzögerung umgangen wird.

Browser/Node.js-Lösung

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

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>
Nach dem Login kopieren
Denken Sie daran, die Browserunterstützung für async/await und die Node.js-Version für das integrierte, auf Versprechen basierende setTimeout zu überprüfen.

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!

Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage