Spec-Zone.ru › Deno 2

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";
clearImmediate(immediate: Immediate | undefined): void

Отменяет объект Immediate, созданный с помощью setImmediate().

Параметры

immediate: Immediate | undefined

Объект Immediate, возвращённый функцией setImmediate().

Тип возвращаемого значения

void

функция clearInterval

Использование в Deno

import { clearInterval } from "node:timers";
clearInterval(timeout:
Timeout
| string
| number
| undefined
): void

Отменяет объект Timeout, созданный с помощью setInterval().

Параметры

timeout:
Timeout
| string
| number
| undefined

Объект Timeout, возвращённый функцией setInterval(), или примитивное значение объекта Timeout в виде строки или числа.

Тип возвращаемого значения

void

функция clearTimeout

Использование в Deno

import { clearTimeout } from "node:timers";
clearTimeout(timeout:
Timeout
| string
| number
| undefined
): void

Отменяет объект Timeout, созданный с помощью setTimeout().

Параметры

timeout:
Timeout
| string
| number
| undefined

Объект 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>(
delay?: number,
value?: T,
options?: TimerOptions,
): 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>(
delay?: number,
value?: T,
options?: TimerOptions,
): 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

Тип возвращаемого значения

Immediate

для использования с clearImmediate()

Перегрузка 2

setImmediate(callback: (_: void) => void): Immediate

Параметры

callback: (_: void) => void

Тип возвращаемого значения

Immediate

пространство имён setImmediate

Функции

setImmediate.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[]

Параметры

callback: (...args: TArgs) => void

Функция, вызываемая по истечении таймера.

delay: number
необязательный

Количество миллисекунд ожидания перед вызовом callback. По умолчанию: 1.

...args: TArgs

Тип возвращаемого значения

Timeout

для использования с clearInterval()

Перегрузка 2

setInterval(
callback: (_: void) => void,
delay?: number,
): Timeout

Параметры

callback: (_: void) => void
delay: number
необязательный

Тип возвращаемого значения

Timeout

функция 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[]

Параметры

callback: (...args: TArgs) => void

Функция, которую нужно вызвать по истечении таймера.

delay: number
необязательный

Количество миллисекунд ожидания перед вызовом callback. По умолчанию: 1.

...args: TArgs

Возвращаемый тип

Timeout

для использования с clearTimeout()

Перегрузка 2

setTimeout(
callback: (_: void) => void,
delay?: number,
): Timeout

Параметры

callback: (_: void) => void
delay: number
необязательный

Возвращаемый тип

Timeout

пространство имён setTimeout

Функции

setTimeout.setTimeout
Документация отсутствует

функция setTimeout.setTimeout

Использование в Deno

import { setTimeout } from "node:timers";
const { setTimeout } = setTimeout;
setTimeout<T = void>(
delay?: number,
value?: T,
options?: TimerOptions,
): 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

расширяет RefCountedDisposable

Использование в 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

расширяет RefCountedDisposableTimer,

Использование в 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

расширяет Abortable

Использование в Deno

import { type TimerOptions } from "node:timers";

Свойства

ref: boolean | undefined
необязательный

Установите значение false, чтобы указать, что запланированный Timeout не должен требовать, чтобы цикл событий Node.js оставался активным.


интерфейс Timer

расширяет RefCounted

Использование в Deno

import { type Timer } from "node:timers";
Устарело

Вместо этого используйте NodeJS.Timeout.

Методы

hasRef(): boolean
refresh(): this
[[Symbol.toPrimitive]](): number

пространство имён promises

Использование в Deno

import { promises } from "node:timers";

API timers/promises предоставляет альтернативный набор функций таймеров, возвращающих объекты Promise. Доступ к API осуществляется через require('node:timers/promises').

import {
  setTimeout,
  setImmediate,
  setInterval,
} from 'node:timers/promises';

Функции

promises.setImmediate
Документация отсутствует
promises.setInterval

Возвращает асинхронный итератор, который генерирует значения с интервалом в delay мс. Если ref — это true, необходимо явно или неявно вызвать next() асинхронного итератора, чтобы цикл событий оставался активным.

promises.setTimeout
Документация отсутствует

Интерфейсы

promises.Scheduler
Документация отсутствует
  • wait
  • yield

Переменные

promises.scheduler
Документация отсутствует

См. также

  • исходный код


переменная promises.scheduler

Использование в Deno

import { promises } from "node:timers";
const { scheduler } = promises;

Тип

Scheduler

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/timers

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API