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.
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> <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><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> <div class="code" style="position:relative; padding:0px; margin:0px;"><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.
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> <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><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!