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

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-18 18:08:11586parcourir

Why Does My `setTimeout` Function Run Immediately?

Pourquoi setTimeout exécute-t-il ma fonction immédiatement ?

Lors de l'utilisation de setTimeout, vous pouvez rencontrer un scénario dans lequel le temps d'attente spécifié est ignoré, ce qui entraîne la fonction à exécuter instantanément. Ce comportement découle d'une idée fausse courante dans la syntaxe utilisée.

Le piège :

L'extrait de code ci-dessous illustre le problème :

setTimeout(testfunction(), 2000);

L'explication :

Dans le code, testfunction() est invoqué immédiatement en utilisant des parenthèses. Cela signifie que setTimeout est programmé pour attendre le résultat de testfunction(), qui est exécuté instantanément.

La solution :

Pour s'assurer que setTimeout attend le résultat souhaité time avant d'exécuter la fonction, utilisez plutôt cette syntaxe :

setTimeout(testFunction, 2000);

Notez l'absence de parenthèses après testFunction. En omettant les parenthèses, vous transmettez la référence à la fonction elle-même, et non le résultat de son appel.

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