https://github.com/arb/big-time
Big time makes it possible to have a timeout that is longer than 24.8 days (2^31-1 milliseconds).
https://github.com/arb/big-time
Last synced: about 1 year ago
JSON representation
Big time makes it possible to have a timeout that is longer than 24.8 days (2^31-1 milliseconds).
- Host: GitHub
- URL: https://github.com/arb/big-time
- Owner: arb
- License: mit
- Created: 2015-05-29T13:39:39.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2020-01-21T15:14:59.000Z (over 6 years ago)
- Last Synced: 2024-04-25T20:46:06.646Z (about 2 years ago)
- Language: JavaScript
- Size: 91.8 KB
- Stars: 2
- Watchers: 2
- Forks: 2
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Big-Time
[](https://www.npmjs.org/package/big-time)
[](https://travis-ci.org/arb/big-time)
[](https://github.com/continuationlabs/belly-button)
Reworking of [long-timeout](https://github.com/tellnes/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).
## Usage
```js
'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);
```
## API
### `bt.setTimeout(callback, delay, [arg1, arg2, arg3,...])`
Creates a new Big-Time timer object and starts the timer where:
- `callback` - the function to execute after `delay` milliseconds has passed. `callback` will be called with `arg1, arg2, arg3...` if they are passed into `setTimeout`, exactly like native `setTimeout`
- `delay` - an integer representing the number of milliseconds to wait before executing `callback`. Alternatively, a `Date` instance can be provided. In this scenario, the delay is computed by subtracting `Date.now()` from the `Date` instance.
- `[arg1, arg2, arg3,...]` - optional `N` number of extra parameters that will be passed back into `callback`.
### `bt.clearTimeout(timer)`
Clears a running Big-Time object.
### `Timeout.prototype.ref()`
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`.
### `Timeout.prototype.unref()`
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`.