Heim  >  Artikel  >  Web-Frontend  >  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
Barbara StreisandOriginal
2024-10-26 03:26:27275Durchsuche

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>

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>

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>
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!

Stellungnahme:
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