Maison >interface Web >js tutoriel >Pourquoi ma fonction JavaScript « setTimeout » s'exécute-t-elle immédiatement ?

Pourquoi ma fonction JavaScript « setTimeout » s'exécute-t-elle immédiatement ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-16 11:07:10352parcourir

Why Does My JavaScript `setTimeout` Function Execute Immediately?

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!

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