«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как вы можете контролировать и отслеживать тайм-ауты в JavaScript?

Как вы можете контролировать и отслеживать тайм-ауты в JavaScript?

Опубликовано 8 ноября 2024 г.
Просматривать:501

How Can You Control and Track Timeouts in JavaScript?

Приостановка и возобновление таймаутов в JavaScript

Как приостановить и возобновить таймаут setTimeout()?

Вы можете обернуть функцию window.setTimeout для создания собственного таймера, поддерживающего приостановку и возобновление.

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();
};

Как узнать оставшееся время текущего тайм-аута?

Вы можете использовать свойство rest пользовательского таймера, чтобы узнать оставшееся время текущего тайм-аута .

var timer = new Timer(function() {
    alert("Done!");
}, 1000);

console.log("Time remaining:", timer.remaining); // Output: 1000

Пример использования:

timer.pause();
// Do some stuff...
timer.resume();
Заявление о выпуске Эта статья перепечатана по адресу: 1729595895. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3