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
Libérer: 2024-12-18 18:08:11
original
684 Les gens l'ont consulté

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);
Copier après la connexion

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);
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal