Перейти к содержимому

Таймеры

setTimeout, setInterval, setImmediate и планирование микрозадач.

На этой странице
Open in ChatGPTOpen in Claude

Elide предоставляет привычные глобальные функции таймеров:

  • setTimeout / clearTimeout
  • setInterval / clearInterval
  • setImmediate / clearImmediate
  • queueMicrotask

Функции таймеров возвращают совместимые с Node объекты Timeout или Immediate, а не числовые идентификаторы. Объекты поддерживают ref(), unref() и hasRef(); Timeout также поддерживает refresh().

const timer = setTimeout(() => console.log("done"), 100);
timer.unref();

В контрольной точке наблюдается следующий порядок:

  1. process.nextTick
  2. Функции обратного вызова Promise и queueMicrotask в порядке постановки в очередь
  3. setImmediate
  4. таймеры с нулевой задержкой
const order = [];
Promise.resolve().then(() => order.push("promise"));
queueMicrotask(() => order.push("microtask"));
setImmediate(() => order.push("immediate"));
setTimeout(() => console.log(order), 0);

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

Reference

Status: Full · Not measured

Была ли эта страница полезной?