Exécution unique du rappel setInterval :
Considérez le code suivant qui vise à créer un compteur :
function timer() { console.log("timer!") } window.setInterval(timer(), 1000)
Cependant , ce code n'exécute la fonction timer qu'une seule fois. Voyons pourquoi ce problème se produit et comment le résoudre.
Le problème survient car le premier paramètre de setInterval doit être une référence de fonction, pas un appel de fonction. Dans le code ci-dessus, timer() est appelé immédiatement, renvoyant undéfini. Par conséquent, setInterval est configuré pour appeler undefined à un intervalle de 1 000 millisecondes, ce qui conduit à une seule exécution au lieu d'une boucle continue.
Pour remédier à cela, nous devons passer une référence de fonction au lieu d'appeler la fonction. . Voici le code corrigé :
function timer() { console.log("timer!"); } window.setInterval(timer, 1000);
Dans cette version corrigée, timer est passé comme référence, permettant à setInterval de l'appeler à l'intervalle spécifié.
Alternativement, nous pouvons utiliser une fonction anonyme comme rappel :
window.setInterval( function() { console.log("timer!"); }, 1000)
Cette approche est plus courte mais peut devenir moins lisible lorsque la fonction devient plus complexe.
En mettant en œuvre ces changements, la fonction de minuterie s'exécutera désormais à plusieurs reprises à l'intervalle souhaité, garantissant un compteur continu.
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!