package node.timers; /** The `timers/promises` API provides an alternative set of timer functions that return `Promise` objects. The API is accessible via`require('node:timers/promises')`. ```js import { setTimeout, setImmediate, setInterval, } from 'timers/promises'; ``` **/ @:jsRequire("timers/promises") @valueModuleOnly extern class Promises { /** ```js import { setTimeout, } from 'timers/promises'; const res = await setTimeout(100, 'result'); console.log(res); // Prints 'result' ``` **/ static function setTimeout(?delay:Float, ?value:T, ?options:TimerOptions):js.lib.Promise; /** ```js import { setImmediate, } from 'timers/promises'; const res = await setImmediate('result'); console.log(res); // Prints 'result' ``` **/ static function setImmediate(?value:T, ?options:TimerOptions):js.lib.Promise; /** Returns an async iterator that generates values in an interval of `delay` ms. If `ref` is `true`, you need to call `next()` of async iterator explicitly or implicitly to keep the event loop alive. ```js import { setInterval, } from '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()); ``` **/ static function setInterval(?delay:Float, ?value:T, ?options:TimerOptions):js.lib.AsyncIterable; static final scheduler : node.timers.promises.Scheduler; }