Maison > interface Web > js tutoriel > Pourquoi ma fonction « setTimeout » s'exécute-t-elle immédiatement au lieu d'après le délai ?

Pourquoi ma fonction « setTimeout » s'exécute-t-elle immédiatement au lieu d'après le délai ?

Barbara Streisand
Libérer: 2024-12-13 05:43:18
original
687 Les gens l'ont consulté

Why is my `setTimeout` Function Executing Immediately Instead of After the Delay?

Problème de délai d'invocation de la fonction setTimeout

Lors de la tentative d'implémentation d'un mécanisme d'interrogation de 5 secondes pour une mise à jour d'une valeur HTML, les utilisateurs peuvent rencontrer un comportement inattendu où la fonction setTimeout() est appelée immédiatement plutôt qu'après le délai prévu. Cela peut empêcher les requêtes de serveur échelonnées souhaitées.

Cause :

Le problème provient de la manière incorrecte dont la fonction setTimeout() est invoquée.

Original Code :

setTimeout(GetUsersNumber(), 50000);
Copier après la connexion

Explication :

En JavaScript, les fonctions peuvent être définies comme des objets sans parenthèses. Cependant, pour appeler une fonction, elle doit être suivie de parenthèses. Dans le code d'origine, la fonction GetUsersNumber() est appelée immédiatement à l'intérieur de setTimeout(), plutôt que d'être passée comme référence de fonction.

Solution :

Pour résolvez le problème, supprimez simplement les parenthèses après le nom de la fonction dans l'argument setTimeout() :

setTimeout(GetUsersNumber, 5000); // 5 seconds instead of 50
Copier après la connexion

Cela garantit que setTimeout() capture une référence à l'objet fonction GetUsersNumber lui-même, lui permettant d'invoquer la fonction lorsque le délai est terminé.

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!

source:php.cn
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