Heim  >  Artikel  >  Web-Frontend  >  Wie kann ich setTimeout() in JavaScript anhalten und fortsetzen?

Wie kann ich setTimeout() in JavaScript anhalten und fortsetzen?

Linda Hamilton
Linda HamiltonOriginal
2024-10-23 00:55:03259Durchsuche

How to Pause and Resume setTimeout() in JavaScript?

SetTimeout() in JavaScript anhalten und fortsetzen

In JavaScript können Sie mit setTimeout() die Ausführung einer Funktion nach einer bestimmten Zeit planen Verzögerung. Es kann jedoch vorkommen, dass Sie die Ausführung des Timeouts anhalten oder fortsetzen müssen.

SetTimeout() anhalten und fortsetzen

Um ein laufendes Timeout anzuhalten, müssen Sie kann die Funktion window.clearTimeout() verwenden. Als Argument wird die ID des zu löschenden Timeouts benötigt. Nach dem Anhalten können Sie das Timeout mit der Methode timer.resume() fortsetzen.

Benutzerdefinierter Timer mit Pause-/Fortsetzungsfunktion

Ein alternativer Ansatz besteht darin, einen benutzerdefinierten Timer zu erstellen Timer-Objekt mit Pause- und Resume-Methoden. Dadurch können Sie das Timeout direkter steuern. Hier ist ein Beispiel für einen solchen Timer:

<code class="javascript">var Timer = function(callback, delay) {
    var timerId, start, remaining = delay;

    this.pause = function() {
        window.clearTimeout(timerId);
        timerId = null;
        remaining -= Date.now() - start;
    };

    this.resume = function() {
        if (timerId) {
            return;
        }

        start = Date.now();
        timerId = window.setTimeout(callback, remaining);
    };

    this.resume();
};</code>

Verbleibende Zeit auf setTimeout() abrufen

Leider gibt es keine integrierte Möglichkeit, die verbleibende Zeit abzurufen ein setTimeout(). Sie können jedoch den oben beschriebenen Ansatz verwenden, bei dem Sie die Startzeit manuell speichern und die verbleibende Zeit berechnen, wenn Sie den Timer anhalten.

Indem Sie setTimeout() in ein benutzerdefiniertes Timer-Objekt einschließen oder den manuellen Zeitberechnungsansatz verwenden können Sie in JavaScript eine Pausen- und Fortsetzungsfunktion für Ihre Zeitüberschreitungen erreichen.

Das obige ist der detaillierte Inhalt vonWie kann ich setTimeout() in JavaScript anhalten und fortsetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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