Skip to content

setTimeout and setInterval above 2147483647ms delay

License

Notifications You must be signed in to change notification settings

trs/set-long-timeout

Repository files navigation

set-long-timeout

setTimeout and setInterval above 2147483647ms delay

NPM Version semantic-release Coverage Status Dependencies status Dev-dependencies status Commitizen friendly

Why?

The native setTimeout and setInterval are limited to a delay of 2147483647ms. This package allows you to set a timeout up to Number.MAX_SAFE_INTEGER.

Install

npm install set-long-timeout

Usage

const {
  setLongTimeout,
  setLongInterval,

  clearLongTimeout,
  clearLongInterval
} = require('set-long-timeout')();

// will call function after 30 days
const timeoutId = setLongTimeout(() => { ... }, 2592000000);
// stop timeout with ID returned
clearLongTimeout(timeoutId);

// will call function every 30 days
const intervalId = setLongInterval(() => { ... }, 2592000000);
// stop interval with ID returned
clearLongInterval(intervalId);

API

const longTimeout = require('set-long-timeout');

longTimeout is a function that takes one argument: the maximum setInterval delay, which defaults to 2147483647.
It returns 4 functions:

setLongTimeout(func, delay[, ...params])

Will call func after delay milliseconds with the passed params if provided.
Returns an ID that can be used to stop the timer.

setLongInterval(func, delay[, ...params])

Will call func every delay milliseconds with the passed params if provided.
Returns an ID that can be used to stop the timer.

clearLongTimeout(timerID)

Will stop a timer using the returned timer ID.
(Also works with setLongInterval IDs)

clearLongInterval(timerID)

Will stop a timer using the returned timer ID.
(Also works with setLongTimeout IDs)

Contributing

See CONTRIBUTING.md.

License

This software is licensed under the MIT Licence. See LICENSE.

About

setTimeout and setInterval above 2147483647ms delay

Resources

License

Stars

Watchers

Forks

Packages

No packages published