Heim >Web-Frontend >js-Tutorial >Wie kann ich die Timeout-Ausführung steuern und die verbleibende Zeit in JavaScript ermitteln?
Beim Arbeiten mit JavaScript kann es notwendig sein, den Ablauf asynchroner Vorgänge wie Timeouts zu steuern. Hier untersuchen wir Möglichkeiten, aktive Zeitüberschreitungen anzuhalten und fortzusetzen sowie die verbleibende Zeit der aktuellen Zeitüberschreitung abzurufen.
Um eine Zeitüberschreitung anzuhalten, können Sie einen Wrapper verwenden Funktion, die den window.setTimeout-Aufruf abfängt und die erforderliche Funktionalität bereitstellt. Die Wrapper-Funktion Timer verwendet eine Rückruffunktion und eine Verzögerung als Argumente und übernimmt das Anhalten, Fortsetzen und Verfolgen der verbleibenden Zeit.
<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>
Um diesen Wrapper zu verwenden, instanziieren Sie ein Timer-Objekt und rufen es auf pause()- und resume()-Methoden nach Bedarf.
Um die verbleibende Zeit für das aktuelle Timeout zu erhalten, besteht eine Möglichkeit darin, die Startzeit zu speichern, wenn das Timeout festgelegt ist, und Berechnen Sie beim Pausieren die Differenz zwischen der aktuellen Zeit und der Startzeit.
<code class="javascript">var start = Date.now(); var t = setTimeout("dosomething()", 5000); var remaining = (start + 5000) - Date.now();</code>
Es ist jedoch wichtig zu beachten, dass diese Berechnung möglicherweise nicht korrekt ist, wenn das Timeout pausiert und fortgesetzt wurde. In der zuvor bereitgestellten Timer-Wrapper-Funktion wird die verbleibende Zeit verfolgt und entsprechend aktualisiert, was eine zuverlässigere Methode zum Abrufen der verbleibenden Zeit bietet.
Das obige ist der detaillierte Inhalt vonWie kann ich die Timeout-Ausführung steuern und die verbleibende Zeit in JavaScript ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!