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;
 | |
| }
 |