Maison  >  Article  >  interface Web  >  Comment puis-je créer un délai de 5 secondes en JavaScript avant d'exécuter la ligne de code suivante ?

Comment puis-je créer un délai de 5 secondes en JavaScript avant d'exécuter la ligne de code suivante ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-25 17:07:03391parcourir

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

Comment attendre 5 secondes avant d'exécuter la ligne suivante


Lorsque vous travaillez en JavaScript, le contrôle du flux d'exécution est primordial. Considérez le scénario suivant : vous avez besoin qu'une fonction fasse une pause de 5 secondes avant d'exécuter une action spécifique, telle que vérifier la valeur d'une variable.


Utilisation de la fonction setTimeout


Traditionnellement, les développeurs JavaScript s'appuient sur la fonction setTimeout pour introduire des retards d'exécution. Cette fonction prend deux paramètres : une chaîne représentant le code à exécuter et un délai exprimé en millisecondes. Dans votre cas particulier, l'extrait de code ci-dessous est insuffisant :


<br>function stateChange(newState) {<br> setTimeout('', 5000);</p>
<p> if (newState == -1) {</p>
<pre class="brush:php;toolbar:false">alert('VIDEO HAS STOPPED');

}
}

Le problème ici est que la chaîne vide transmise à setTimeout ne ça n'a aucun effet. Pour créer un délai de 5 secondes avant de vérifier la variable newState, vous devez modifier le code comme suit :


<br>function stateChange(newState) {<br> setTimeout(() = > {</p>
<pre class="brush:php;toolbar:false">if (newState == -1) {
  alert('VIDEO HAS STOPPED');
}

}, 5000);
}

En fournissant une fonction comme premier argument, vous spécifiez le code à être exécuté après le délai. Désormais, la fonction fera une pause précise de 5 secondes avant de vérifier le nouvel état.


Alternative Solutions


Dans le JavaScript moderne, vous pouvez également exploiter async/ attendre d'obtenir le même résultat. Async/await simplifie les opérations asynchrones et rend votre code plus lisible. Voici comment l'implémenter pour votre scénario :


<br>const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));</p>
<p>fonction asynchrone stateChange(newState) {<br> wait delay(5000);</p>
<p>if (newState == -1 ) {</p>
<pre class="brush:php;toolbar:false">alert('VIDEO HAS STOPPED');

}
}

Ce code utilise la fonction de délai, qui renvoie une promesse qui se résout après le délai spécifié. En utilisant async/await, vous déclarez la fonction stateChange comme fonction asynchrone et attendez la fin du délai, en assurant une pause de 5 secondes avant de vérifier le newState.

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!

Déclaration:
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