Maison >interface Web >js tutoriel >Pourquoi ma fonction JavaScript « setTimeout » s'exécute-t-elle immédiatement ?
Comprendre l'exécution de la fonction setTimeout
En JavaScript, la fonction setTimeout prend deux arguments : une fonction à exécuter et un délai en millisecondes. Cependant, les développeurs rencontrent généralement un problème où leurs fonctions s'exécutent immédiatement au lieu d'attendre le délai spécifié.
Énoncé du problème
Lorsque vous essayez d'utiliser setTimeout, la fonction est en cours d'exécution. exécuté immédiatement, même si un délai de 2 secondes (2 000 millisecondes) a été spécifié. Le code suivant illustre ce problème :
setTimeout(testfunction(), 2000);
Solution
Le problème provient de l'utilisation incorrecte des parenthèses lors de l'appel de la fonction. Dans le code fourni, testfunction() est appelé immédiatement avec des parenthèses, ce qui entraîne son exécution avant le délai setTimeout.
Pour résoudre ce problème, les parenthèses doivent être supprimées de l'appel de fonction. Au lieu de cela, le nom de la fonction sans parenthèses doit être transmis à setTimeout comme indiqué ci-dessous :
setTimeout(testFunction, 2000);
Notez que la suppression des parenthèses empêche l'appel immédiat de la fonction, permettant ainsi au délai setTimeout de prendre effet. Cela garantira que la fonction s'exécutera après l'intervalle de temps spécifié.
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!