Таймеры
Модуль timer предоставляет глобальный API для планирования вызова функций в будущем. Поскольку функции таймеров являются глобальными, нет необходимости вызывать require('timers') для использования API.
Функции таймеров в Node.js реализуют API, аналогичный API таймеров веб-браузеров, но используют другую внутреннюю реализацию, основанную на цикле событий Node.js.
Класс: Immediate
Этот объект создается внутри и возвращается функцией setImmediate(). Он может быть передан в функцию clearImmediate() для отмены запланированных действий.
Класс: Timeout
Этот объект создается внутри и возвращается функциями setTimeout() и setInterval(). Он может быть передан в функции clearTimeout() или clearInterval() (соответственно) для отмены запланированных действий.
По умолчанию, когда таймер планируется с помощью setTimeout() или setInterval(), цикл событий Node.js будет продолжать работу до тех пор, пока таймер активен. Каждый из объектов Timeout , возвращаемых этими функциями, экспортирует функции timeout.ref() и timeout.unref(), которые могут использоваться для управления этим поведением по умолчанию.
timeout.ref()
При вызове запрашивается, чтобы цикл событий Node.js не завершался до тех пор, пока активен объект Timeout. Вызов timeout.ref() несколько раз не повлияет.
Примечание: По умолчанию все объекты Timeout «ссылаются», что обычно делает ненужным вызов timeout.ref() , если timeout.unref() не был вызван ранее.
Возвращает ссылку на объект Timeout.
timeout.unref()
При вызове активный объект Timeout не будет требовать от цикла событий Node.js оставаться активным. Если нет других действий, поддерживающих работу цикла событий, процесс может завершиться до вызова обратного вызова объекта Timeout. Вызов timeout.unref() несколько раз не повлияет.
Примечание: Вызов timeout.unref() создает внутренний таймер, который разбудит цикл событий Node.js. Создание слишком большого количества таких таймеров может негативно сказаться на производительности приложения Node.js.
Возвращает ссылку на объект Timeout.
Планирование таймеров
Таймер в Node.js — это внутренняя конструкция, которая вызывает заданную функцию через определённый промежуток времени. Время вызова функции таймера зависит от метода, используемого для создания таймера, и других задач, выполняемых циклом событий Node.js.
setImmediate(callback[, ...args])
-
callback<Функция> Функция, которая должна быть вызвана в конце текущего цикла цикла событий Node.js -
...args<любое> Необязательные аргументы, которые будут переданы при вызовеcallback.
Планирует «немедленное» выполнение callback после обратных вызовов событий ввода-вывода и перед триггерами таймеров, созданных с помощью setTimeout() и setInterval(). Возвращает объект Immediate для использования с clearImmediate().
При многократном вызове setImmediate() функции callback добавляются в очередь выполнения в порядке их создания. Вся очередь обратных вызовов обрабатывается в каждой итерации цикла событий. Если таймер immediate вставлен внутрь выполняемого обратного вызова, он не будет запущен до следующей итерации цикла событий.
Если callback не является функцией, будет выброшено исключение TypeError.
setInterval(callback, delay[, ...args])
-
callback<Функция> Функция, которая будет вызвана по истечении таймера. -
delay<число> Количество миллисекунд, которые необходимо подождать, прежде чем вызватьcallback. -
...args<любое> Необязательные аргументы, которые будут переданы при вызовеcallback.
Планирует повторяющееся выполнение callback каждые delay миллисекунд. Возвращает объект Timeout для использования с clearInterval().
Если delay больше 2147483647 или меньше 1, значение delay будет установлено в 1.
Если callback не является функцией, будет выброшено исключение TypeError.
setTimeout(callback, delay[, ...args])
-
callback<Функция> Функция, которая будет вызвана по истечении таймера. -
delay<число> Количество миллисекунд, которые необходимо подождать, прежде чем вызватьcallback. -
...args<любое> Необязательные аргументы, которые будут переданы при вызовеcallback.
Планирует выполнение однократного callback через delay миллисекунд. Возвращает объект Timeout для использования с clearTimeout().
Вероятно, callback не будет вызван ровно через delay миллисекунд. Node.js не гарантирует точное время срабатывания обратных вызовов, а также их порядок. Обратный вызов будет вызван как можно ближе к указанному времени.
Примечание: Если delay больше 2147483647 или меньше 1, значение delay будет установлено в 1.
Если callback не является функцией, будет выброшено исключение TypeError.
Отмена таймеров
Методы setImmediate(), setInterval() и setTimeout() возвращают объекты, представляющие запланированные таймеры. Эти объекты могут быть использованы для отмены таймера и предотвращения его запуска.
clearImmediate(immediate)
-
immediate<Immediate> ОбъектImmediate, возвращаемый функциейsetImmediate().
Отменяет объект Immediate , созданный функцией setImmediate().
clearInterval(timeout)
-
timeout<Timeout> ОбъектTimeout, возвращаемый функциейsetInterval().
Отменяет объект Timeout , созданный функцией setInterval().
clearTimeout(timeout)
-
timeout<Timeout> ОбъектTimeout, возвращаемый функциейsetTimeout().
Отменяет объект Timeout , созданный функцией setTimeout().
© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v6.x/docs/api/timers.html