timers
Модуль timer предоставляет глобальный API для планирования вызова функций в будущем. Поскольку функции таймеров являются глобальными, для использования API не нужно импортировать node:timers.
Функции таймеров в Node.js реализуют API, похожий на API таймеров в веб-браузерах, но используют другую внутреннюю реализацию, основанную на цикле событий Node.js.
Использование в Deno
import * as mod from "node:timers";
функция clearImmediate
Использование в Deno
import { clearImmediate } from "node:timers";
функция clearInterval
Использование в Deno
import { clearInterval } from "node:timers";
clearInterval(timeout: ): voidОтменяет объект Timeout, созданный с помощью setInterval().
Параметры
timeout: Объект Timeout, возвращённый функцией setInterval(), или примитивное значение объекта Timeout в виде строки или числа.
Тип возвращаемого значения
void функция clearTimeout
Использование в Deno
import { clearTimeout } from "node:timers";
clearTimeout(timeout: ): voidОтменяет объект Timeout, созданный с помощью setTimeout().
Параметры
timeout: Объект Timeout, возвращённый функцией setTimeout(), или примитивное значение объекта Timeout в виде строки или числа.
Тип возвращаемого значения
void функция promises.setImmediate
Использование в Deno
import { promises } from "node:timers";
const { setImmediate } = promises;
setImmediate<T = void>(
value?: T,
options?: TimerOptions,
): Promise<T>import {
setImmediate,
} from 'node:timers/promises';
const res = await setImmediate('result');
console.log(res); // Prints 'result'
Параметры типа
T = void Параметры
value: T Значение, которым выполняется промис.
options: TimerOptions Тип возвращаемого значения
Promise<T> функция promises.setInterval
Использование в Deno
import { promises } from "node:timers";
const { setInterval } = promises;
setInterval<T = void>(): AsyncIterator<T>Возвращает асинхронный итератор, который генерирует значения с интервалом delay мс. Если ref равно true, необходимо явно или неявно вызвать next() асинхронного итератора, чтобы цикл событий оставался активным.
import {
setInterval,
} from 'node:timers/promises';
const interval = 100;
for await (const startTime of setInterval(interval, Date.now())) {
const now = Date.now();
console.log(now);
if ((now - startTime) > 1000)
break;
}
console.log(Date.now());
Параметры типа
T = void Параметры
delay: number Количество миллисекунд между итерациями. По умолчанию: 1.
value: T Значение, возвращаемое итератором.
options: TimerOptions Тип возвращаемого значения
AsyncIterator<T> функция promises.setTimeout
Использование в Deno
import { promises } from "node:timers";
const { setTimeout } = promises;
setTimeout<T = void>(): Promise<T>import {
setTimeout,
} from 'node:timers/promises';
const res = await setTimeout(100, 'result');
console.log(res); // Prints 'result'
Параметры типа
T = void Параметры
delay: number Количество миллисекунд ожидания до выполнения промиса. По умолчанию: 1.
value: T Значение, которым выполняется промис.
options: TimerOptions Тип возвращаемого значения
Promise<T> функция queueMicrotask
Использование в Deno
import { queueMicrotask } from "node:timers";
queueMicrotask(callback: () => void): voidМетод queueMicrotask() ставит в очередь микрозадачу для вызова callback. Если callback выбрасывает исключение, будет сгенерировано событие 'uncaughtException' объекта process.
Очередью микрозадач управляет V8; её можно использовать аналогично очереди process.nextTick(), которой управляет Node.js. В каждом цикле цикла событий Node.js очередь process.nextTick() обрабатывается перед очередью микрозадач.
Параметры
callback: () => void Функция, которую нужно поставить в очередь.
Тип возвращаемого значения
void функция setImmediate
Использование в Deno
import { setImmediate } from "node:timers";
Перегрузка 1
setImmediate<TArgs extends any[]>(
callback: (...args: TArgs) => void,
...args: TArgs,
): ImmediateПланирует «немедленный» вызов callback после обратных вызовов событий ввода-вывода.
Если функция setImmediate() вызывается несколько раз, функции callback ставятся в очередь на выполнение в порядке их создания. Очередь обратных вызовов обрабатывается целиком при каждой итерации цикла событий. Если таймер immediate поставлен в очередь из выполняемого обратного вызова, он сработает только при следующей итерации цикла событий.
Если callback не является функцией, будет выброшено исключение TypeError.
Для этого метода предусмотрен специальный вариант для промисов, доступный с помощью timersPromises.setImmediate().
Параметры типа
TArgs extends any[] Параметры
callback: (...args: TArgs) => void Функция, вызываемая в конце текущего оборота цикла событий Node.js.
...args: TArgs Тип возвращаемого значения
для использования с clearImmediate()
Перегрузка 2
пространство имён setImmediate
Функции
функция setImmediate.setImmediate
Использование в Deno
import { setImmediate } from "node:timers";
const { setImmediate } = setImmediate;
setImmediate<T = void>(
value?: T,
options?: TimerOptions,
): Promise<T>import {
setImmediate,
} from 'node:timers/promises';
const res = await setImmediate('result');
console.log(res); // Prints 'result'
Параметры типа
T = void Параметры
value: T Значение, которым выполняется промис.
options: TimerOptions Тип возвращаемого значения
Promise<T> функция setInterval
Использование в Deno
import { setInterval } from "node:timers";
Перегрузка 1
setInterval<TArgs extends any[]>(
callback: (...args: TArgs) => void,
delay?: number,
...args: TArgs,
): TimeoutПланирует повторный вызов callback каждые delay миллисекунд.
Если delay больше 2147483647, меньше 1 или равно NaN, значение delay будет установлено в 1. Дробные задержки усекаются до целого числа.
Если callback не является функцией, будет выброшено исключение TypeError.
Для этого метода предусмотрен специальный вариант для промисов, доступный с помощью timersPromises.setInterval().
Параметры типа
TArgs extends any[] Параметры
Тип возвращаемого значения
для использования с clearInterval()
Перегрузка 2
функция setTimeout
Использование в Deno
import { setTimeout } from "node:timers";
Перегрузка 1
setTimeout<TArgs extends any[]>(
callback: (...args: TArgs) => void,
delay?: number,
...args: TArgs,
): TimeoutПланирует однократное выполнение callback через delay миллисекунд.
Вероятно, callback не будет вызвано точно через delay миллисекунд. Node.js не гарантирует точное время вызова обратных вызовов или их порядок. Обратный вызов будет вызван как можно ближе к указанному времени.
Если значение delay больше 2147483647, меньше 1 или равно NaN, значение delay будет установлено в 1. Нецелые значения задержки усекаются до целого числа.
Если callback не является функцией, будет выброшено исключение TypeError.
Для промисов доступен специальный вариант этого метода через timersPromises.setTimeout().
Параметры типа
TArgs extends any[] Параметры
Возвращаемый тип
для использования с clearTimeout()
Перегрузка 2
пространство имён setTimeout
Функции
функция setTimeout.setTimeout
Использование в Deno
import { setTimeout } from "node:timers";
const { setTimeout } = setTimeout;
setTimeout<T = void>(): Promise<T>import {
setTimeout,
} from 'node:timers/promises';
const res = await setTimeout(100, 'result');
console.log(res); // Prints 'result'
Параметры типа
T = void Параметры
delay: number Количество миллисекунд ожидания перед выполнением промиса. По умолчанию: 1.
value: T Значение, с которым выполняется промис.
options: TimerOptions Возвращаемый тип
Promise<T> интерфейс Immediate
Использование в Deno
import { type Immediate } from "node:timers";
Этот объект создаётся внутренними средствами и возвращается из setImmediate(). Его можно передать в clearImmediate(), чтобы отменить запланированные действия.
По умолчанию, когда запланировано выполнение immediate, цикл событий Node.js продолжает работать, пока immediate активен. Объект Immediate, возвращаемый setImmediate(), экспортирует функции immediate.ref() и immediate.unref(), с помощью которых можно управлять этим поведением по умолчанию.
Методы
hasRef(): boolean Если значение истинно, объект Immediate будет поддерживать активность цикла событий Node.js.
ref(): this При вызове предотвращает выход цикла событий Node.js, пока Immediate активен. Повторные вызовы immediate.ref() не повлияют на результат.
По умолчанию все объекты Immediate имеют привязку («ref'ed»), поэтому обычно вызывать immediate.ref() не нужно, если ранее не был вызван immediate.unref().
unref(): this При вызове активный объект Immediate не будет требовать, чтобы цикл событий Node.js оставался активным. Если никакая другая активность не поддерживает работу цикла событий, процесс может завершиться до вызова обратного вызова объекта Immediate. Повторные вызовы immediate.unref() не повлияют на результат.
[[Symbol.dispose]](): void Отменяет immediate. Это аналогично вызову clearImmediate().
_onImmediate(...args: any[]): void интерфейс promises.Scheduler
Использование в Deno
import { type promises } from "node:timers";
type { Scheduler } = promises;
Методы
wait(
delay: number,
options?: { signal?: AbortSignal; },
): Promise<void> Экспериментальный API, определённый в черновой спецификации Scheduling APIs, разрабатываемой в качестве стандартного API веб-платформы.
Вызов timersPromises.scheduler.wait(delay, options) примерно эквивалентен вызову timersPromises.setTimeout(delay, undefined, options), за исключением того, что параметр ref не поддерживается.
import { scheduler } from 'node:timers/promises';
await scheduler.wait(1000); // Wait one second before continuing
yield(): Promise<void> Экспериментальный API, определённый в черновой спецификации Scheduling APIs, разрабатываемой в качестве стандартного API веб-платформы.
Вызов timersPromises.scheduler.yield() эквивалентен вызову timersPromises.setImmediate() без аргументов.
интерфейс Timeout
Использование в Deno
import { type Timeout } from "node:timers";
Этот объект создаётся внутренними средствами и возвращается из setTimeout() и setInterval(). Его можно передать в clearTimeout() или clearInterval(), чтобы отменить запланированные действия.
По умолчанию, когда таймер запланирован с помощью setTimeout() или setInterval(), цикл событий Node.js продолжает работать, пока таймер активен. Каждый из объектов Timeout, возвращаемых этими функциями, экспортирует функции timeout.ref() и timeout.unref(), с помощью которых можно управлять этим поведением по умолчанию.
Методы
close(): this Отменяет тайм-аут.
hasRef(): boolean Если значение истинно, объект Timeout будет поддерживать активность цикла событий Node.js.
ref(): this При вызове предотвращает выход цикла событий Node.js, пока Timeout активен. Повторные вызовы timeout.ref() не повлияют на результат.
По умолчанию все объекты Timeout имеют привязку («ref'ed»), поэтому обычно вызывать timeout.ref() не нужно, если ранее не был вызван timeout.unref().
refresh(): this Устанавливает время начала таймера на текущее время и перепланирует таймер так, чтобы его обратный вызов был выполнен в ранее заданный срок, отсчитываемый от текущего времени. Это позволяет обновить таймер без создания нового объекта JavaScript.
Вызов этого метода для таймера, обратный вызов которого уже был выполнен, повторно активирует таймер.
unref(): this При вызове активный объект Timeout не будет требовать, чтобы цикл событий Node.js оставался активным. Если никакая другая активность не поддерживает работу цикла событий, процесс может завершиться до вызова обратного вызова объекта Timeout. Повторные вызовы timeout.unref() не повлияют на результат.
[[Symbol.toPrimitive]](): number Преобразует Timeout в примитивное значение. Это примитивное значение можно использовать для очистки Timeout. Примитивное значение можно использовать только в том же потоке, в котором был создан тайм-аут. Поэтому для использования в нескольких worker_threads его сначала необходимо передать в нужный поток. Это обеспечивает повышенную совместимость с реализациями браузерных setTimeout() и setInterval().
[[Symbol.dispose]](): void Отменяет тайм-аут.
_onTimeout(...args: any[]): void интерфейс TimerOptions
Использование в Deno
import { type TimerOptions } from "node:timers";
Свойства
ref: boolean | undefined Установите значение false, чтобы указать, что запланированный Timeout не должен требовать, чтобы цикл событий Node.js оставался активным.
интерфейс Timer
Использование в Deno
import { type Timer } from "node:timers";
Вместо этого используйте NodeJS.Timeout.
Методы
пространство имён promises
Использование в Deno
import { promises } from "node:timers";
API timers/promises предоставляет альтернативный набор функций таймеров, возвращающих объекты Promise. Доступ к API осуществляется через require('node:timers/promises').
import {
setTimeout,
setImmediate,
setInterval,
} from 'node:timers/promises';
Функции
Возвращает асинхронный итератор, который генерирует значения с интервалом в delay мс. Если ref — это true, необходимо явно или неявно вызвать next() асинхронного итератора, чтобы цикл событий оставался активным.
Интерфейсы
Переменные
См. также
переменная promises.scheduler
Использование в Deno
import { promises } from "node:timers";
const { scheduler } = promises;
Тип
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/timers