Maison > interface Web > js tutoriel > Pourquoi ma fonction « setTimeout » est-elle exécutée immédiatement plutôt qu'après le délai ?

Pourquoi ma fonction « setTimeout » est-elle exécutée immédiatement plutôt qu'après le délai ?

Mary-Kate Olsen
Libérer: 2024-11-15 17:04:02
original
694 Les gens l'ont consulté

Why is my `setTimeout` function being executed immediately instead of after the delay?

Pourquoi l'exécution immédiate de la fonction planifiée setTimeout se produit

Dans ce scénario, où une fonction est destinée à être exécutée avec un délai à l'aide de setTimeout mais est à la place exécutée immédiatement, le problème réside dans la façon dont la fonction est transmise à setTimeout.

Pour résoudre ce problème, il existe trois approches pour garantir qu'elle s'exécute avec le délai souhaité :

  1. Transmettre les arguments individuellement :

    setTimeout(doRequest, proxytimeout, url, proxys[proxy]);
    Copier après la connexion

    Ce formulaire transmet d'abord la fonction, suivi du délai d'attente et des arguments de la fonction.

  2. Utilisez un Chaîne littérale :

    setTimeout('doRequest('+url+','+proxys[proxy]+')', proxytimeout);
    Copier après la connexion

    Ici, une chaîne littérale est fournie, qui sera évaluée au moment de l'exécution.

  3. Fermeture de fonction anonyme :

    (function(u, p, t) {
        setTimeout(function() { doRequest(u, p); }, t);
    })(url, proxys[proxy], proxytimeout);
    Copier après la connexion

    Cette approche implique une fonction anonyme qui appelle la fonction prévue. La fermeture garantit que les valeurs utilisées dans la fonction restent cohérentes tout au long de la boucle.

En adoptant l'une de ces méthodes, vous pouvez planifier efficacement l'exécution de la fonction doRequest avec le délai 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!

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