Reworking of long-timeout that has more features, follows correct semver, and has unit tests. Big-Time is a custom timer class to allow really long values into setTimeout
that are larger than JavaScript would normally support (2^31-1).
'use strict';
const bt = require('big-time');
bt.setTimeout(() => {
console.log('if you wait for this, it will eventually log');
}, Number.MAX_VALUE);
const timer = bt.setTimeout(() => {
console.log('shorter');
}, 1000);
bt.clearTimeout(timer);
Creates a new Big-Time timer object and starts the timer where:
callback
- the function to execute afterdelay
milliseconds has passed.callback
will be called witharg1, arg2, arg3...
if they are passed intosetTimeout
, exactly like nativesetTimeout
delay
- an integer representing the number of milliseconds to wait before executingcallback
. Alternatively, aDate
instance can be provided. In this scenario, the delay is computed by subtractingDate.now()
from theDate
instance.[arg1, arg2, arg3,...]
- optionalN
number of extra parameters that will be passed back intocallback
.
Clears a running Big-Time object.
When called, requests that the Node.js event loop not exit so long as the
Timeout
is active. Calling timeout.ref()
multiple times will have no effect.
By default, all Timeout
objects are "ref'd", making it normally unnecessary to
call timeout.ref()
unless timeout.unref()
had been called previously.
Returns a reference to the 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.
Returns a reference to the Timeout
.