Retarder une boucle JavaScript
Il est possible d'introduire un délai dans une boucle JavaScript à l'aide de la fonction setTimeout(). Cependant, le comportement par défaut de setTimeout() est de s'exécuter immédiatement. Pour introduire un délai, nous devons utiliser une boucle récursive.
Une façon d'y parvenir est d'utiliser une boucle for et d'appeler setTimeout() dans la boucle. Cependant, cette approche se heurte à un problème car tous les setTimeouts seront planifiés immédiatement, ce qui entraînera l'apparition de plusieurs alertes en même temps.
Pour résoudre ce problème, nous devons utiliser une fonction récursive qui s'appelle avec un délai. Le code suivant illustre cette approche :
var i = 1; // set your counter to 1 function myLoop() { // create a loop function setTimeout(function() { // call a 3s setTimeout when the loop is called console.log('hello'); // your code here i++; // increment the counter if (i < 10) { // if the counter < 10, call the loop function myLoop(); // .. again which will trigger another } // .. setTimeout() }, 3000) } myLoop(); // start the loop
Dans ce code, nous créons une fonction récursive appelée myLoop() qui contient un setTimeout() de 3 secondes. Dans le délai imparti, nous incrémentons le compteur et vérifions s'il est inférieur à 10. Si c'est le cas, nous appelons à nouveau myLoop(), introduisant ainsi un délai entre chaque alerte.
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!