Maison > interface Web > js tutoriel > le corps du texte

Comment puis-je retarder l'exécution du code de 5 secondes après avoir défini un délai d'attente ?

Barbara Streisand
Libérer: 2024-10-26 03:26:27
original
273 Les gens l'ont consulté

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

Différer l'exécution du code de 5 secondes

Le code fourni tente de retarder l'exécution d'une opération de 5 secondes à l'aide de la fonction setTimeout :

<code class="javascript">function stateChange(newState) {
  setTimeout('', 5000);

  if(newState == -1) {
    alert('VIDEO HAS STOPPED');
  }
}</code>
Copier après la connexion

Cependant, le code vérifie immédiatement la condition newState == -1 après avoir planifié le délai d'attente, annulant ainsi le délai prévu.

Solution Navigateur/Node.js

Une solution appropriée implique l'utilisation d'un système asynchrone. techniques de programmation pour différer l’exécution de l’instruction if jusqu’à ce que 5 secondes se soient écoulées. Pour les navigateurs, vous pouvez utiliser la syntaxe async/await :

<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>
Copier après la connexion

Pour Node.js 16 et supérieur, vous pouvez profiter du setTimeout intégré basé sur la promesse :

<code class="javascript">import { setTimeout } from "timers/promises";

const stateChange = async (newState) => {
  await setTimeout(5000);
  if (newState == -1) {
    alert('VIDEO HAS STOPPED');
  }
};</code>
Copier après la connexion

N'oubliez pas de vérifier la prise en charge du navigateur pour la version async/await et Node.js pour le setTimeout intégré basé sur la promesse.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!