Heim > Web-Frontend > js-Tutorial > Hauptteil

Warum wird meine Funktion „setTimeout' sofort und nicht erst nach der Verzögerung ausgeführt?

Mary-Kate Olsen
Freigeben: 2024-11-15 17:04:02
Original
597 Leute haben es durchsucht

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

Warum die sofortige Ausführung der setTimeout-geplanten Funktion auftritt

In diesem Szenario, in dem eine Funktion mit setTimeout verzögert ausgeführt werden soll, stattdessen aber sofort ausgeführt wird, Das Problem liegt darin, wie die Funktion an setTimeout übergeben wird.

Um dieses Problem zu lösen, gibt es drei Ansätze, um sicherzustellen, dass es mit der gewünschten Verzögerung ausgeführt wird:

  1. Argumente einzeln übergeben:

    setTimeout(doRequest, proxytimeout, url, proxys[proxy]);
    Nach dem Login kopieren

    Dieses Formular übergibt zuerst die Funktion, gefolgt vom Timeout und den Argumenten der Funktion.

  2. Verwenden Sie a Literal-String:

    setTimeout('doRequest('+url+','+proxys[proxy]+')', proxytimeout);
    Nach dem Login kopieren

    Hier wird ein Literal-String bereitgestellt, der zur Ausführungszeit ausgewertet wird.

  3. Anonymer Funktionsabschluss:

    (function(u, p, t) {
        setTimeout(function() { doRequest(u, p); }, t);
    })(url, proxys[proxy], proxytimeout);
    Nach dem Login kopieren

    Dieser Ansatz beinhaltet eine anonyme Funktion, die die beabsichtigte Funktion aufruft. Der Abschluss stellt sicher, dass die in der Funktion verwendeten Werte während der gesamten Schleife konsistent bleiben.

Durch die Übernahme einer dieser Methoden können Sie die Ausführung der doRequest-Funktion effektiv mit der angegebenen Verzögerung planen.

Das obige ist der detaillierte Inhalt vonWarum wird meine Funktion „setTimeout' sofort und nicht erst nach der Verzögerung ausgeführt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage