Wie kann ich eine setTimeout()-Zeitüberschreitung anhalten und fortsetzen?
Sie können umbrechen die window.setTimeout-Funktion zum Erstellen eines benutzerdefinierten Timers, der das Anhalten und Fortsetzen unterstützt.
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();
};
Wie erhalte ich die verbleibende Zeit des aktuellen Timeouts?
Sie können die verbleibende Eigenschaft des benutzerdefinierten Timers verwenden, um die verbleibende Zeit des aktuellen Timeouts abzurufen .
var timer = new Timer(function() {
alert("Done!");
}, 1000);
console.log("Time remaining:", timer.remaining); // Output: 1000
Beispielverwendung:
timer.pause();
// Do some stuff...
timer.resume();
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3