forked from LeenkxTeam/LNXSDK
139 lines
5.6 KiB
Haxe
139 lines
5.6 KiB
Haxe
package js.node;
|
|
|
|
import haxe.Constraints.Function;
|
|
import haxe.extern.Rest;
|
|
|
|
/**
|
|
The `timer` module exposes a global API for scheduling functions to be called at some future period of time.
|
|
Because the timer functions are globals, there is no need to call `require('timers')` to use the API.
|
|
|
|
The timer functions within Node.js implement a similar API as the timers API provided by Web Browsers
|
|
but use a different internal implementation that is built around the Node.js Event Loop.
|
|
**/
|
|
@:jsRequire("timers")
|
|
extern class Timers {
|
|
/**
|
|
Schedules the "immediate" execution of the callback after I/O events' callbacks.
|
|
|
|
When multiple calls to `setImmediate()` are made, the `callback` functions are queued for execution
|
|
in the order in which they are created. The entire callback queue is processed every event loop iteration.
|
|
If an immediate timer is queued from inside an executing callback, that timer will not be triggered until
|
|
the next event loop iteration.
|
|
|
|
If `callback` is not a function, a `TypeError` will be thrown.
|
|
|
|
This method has a custom variant for promises that is available using `util.promisify()`.
|
|
**/
|
|
static function setImmediate(callback:Function, args:Rest<Dynamic>):Immediate;
|
|
|
|
/**
|
|
Schedules repeated execution of `callback` every `delay` milliseconds.
|
|
|
|
When delay is larger than `2147483647` or less than `1`, the `delay` will be set to `1`.
|
|
Non-integer delays are truncated to an integer.
|
|
|
|
If `callback` is not a function, a `TypeError` will be thrown.
|
|
|
|
This method has a custom variant for promises that is available using `util.promisify()`.
|
|
**/
|
|
static function setInterval(callback:Function, delay:Int, args:Rest<Dynamic>):Timeout;
|
|
|
|
/**
|
|
Schedules execution of a one-time `callback` after `delay` milliseconds.
|
|
|
|
The `callback` will likely not be invoked in precisely `delay` milliseconds.
|
|
Node.js makes no guarantees about the exact timing of when callbacks will fire, nor of their ordering.
|
|
The callback will be called as close as possible to the time specified.
|
|
|
|
When delay is larger than `2147483647` or less than `1`, the delay will be set to `1`.
|
|
Non-integer delays are truncated to an integer.
|
|
|
|
If `callback` is not a function, a `TypeError` will be thrown.
|
|
|
|
This method has a custom variant for promises that is available using `util.promisify()`.
|
|
**/
|
|
static function setTimeout(callback:Function, delay:Int, args:Rest<Dynamic>):Timeout;
|
|
|
|
/**
|
|
Cancels an Immediate object created by `setImmediate()`.
|
|
**/
|
|
static function clearImmediate(immediate:Immediate):Void;
|
|
|
|
/**
|
|
Cancels a Timeout object created by `setInterval()`.
|
|
**/
|
|
static function clearInterval(timeout:Timeout):Void;
|
|
|
|
/**
|
|
Cancels a Timeout object created by `setTimeout()`.
|
|
**/
|
|
static function clearTimeout(timeout:Timeout):Void;
|
|
}
|
|
|
|
/**
|
|
This object is created internally and is returned from `setImmediate()`.
|
|
It can be passed to `clearImmediate()` in order to cancel the scheduled actions.
|
|
**/
|
|
extern class Immediate {
|
|
/**
|
|
If true, the `Immediate` object will keep the Node.js event loop active.
|
|
**/
|
|
function hasRef():Bool;
|
|
|
|
/**
|
|
When called, requests that the Node.js event loop not exit so long as the `Immediate` is active.
|
|
Calling `immediate.ref()` multiple times will have no effect.
|
|
|
|
By default, all `Immediate` objects are "ref'ed", making it normally unnecessary to call `immediate.ref()`
|
|
unless `immediate.unref()` had been called previously.
|
|
**/
|
|
function ref():Immediate;
|
|
|
|
/**
|
|
When called, the active `Immediate` object will not require the Node.js event loop to remain active.
|
|
If there is no other activity keeping the event loop running, the process may exit before the `Immediate` object's
|
|
callback is invoked. Calling immediate.unref() multiple times will have no effect.
|
|
**/
|
|
function unref():Immediate;
|
|
}
|
|
|
|
/**
|
|
This object is created internally and is returned from `setTimeout()` and `setInterval()`.
|
|
It can be passed to either `clearTimeout()` or `clearInterval()` in order to cancel the scheduled actions.
|
|
**/
|
|
extern class Timeout {
|
|
/**
|
|
If true, the `Timeout` object will keep the Node.js event loop active.
|
|
**/
|
|
function hasRef():Bool;
|
|
|
|
/**
|
|
When called, the active `Timeout` object will not require the Node.js event loop to remain active.
|
|
If there is no other activity keeping the event loop running, the process may exit before the `Timeout` object's
|
|
callback is invoked. Calling `timeout.unref()` multiple times will have no effect.
|
|
|
|
Calling `timeout.unref()` creates an internal timer that will wake the Node.js event loop.
|
|
Creating too many of these can adversely impact performance of the Node.js application.
|
|
**/
|
|
function ref():Timeout;
|
|
|
|
/**
|
|
Sets the timer's start time to the current time, and reschedules the timer to call its callback at the previously
|
|
specified duration adjusted to the current time. This is useful for refreshing a timer without allocating
|
|
a new JavaScript object.
|
|
|
|
Using this on a timer that has already called its callback will reactivate the timer.
|
|
**/
|
|
function refresh():Timeout;
|
|
|
|
/**
|
|
When called, the active `Timeout` object will not require the Node.js event loop to remain active.
|
|
If there is no other activity keeping the event loop running, the process may exit before the `Timeout` object's
|
|
callback is invoked. Calling `timeout.unref()` multiple times will have no effect.
|
|
|
|
Calling `timeout.unref()` creates an internal timer that will wake the Node.js event loop.
|
|
Creating too many of these can adversely impact performance of the Node.js application.
|
|
**/
|
|
function unref():Timeout;
|
|
}
|