Skip to content
Timers extensions
JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
promise
promise_
test
.editorconfig
.gitignore
CHANGELOG.md
CHANGES
LICENSE
README.md
delay.js
max-timeout.js
once.js
package.json
throttle.js
valid-timeout.js

README.md

Build status Windows status Transpilation status npm version

timers-ext

Timers extensions

Installation

$ npm install timers-ext

To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: Browserify, Webmake or Webpack

API

MAX*TIMEOUT *(timers-ext/max-timeout)_

Maximum possible timeout value in milliseconds. It equals to maximum positive value for 32bit signed integer, so 2³¹ (2147483647), which makes it around 24.9 days

delay(fn[, timeout]) (timers-ext/delay)

Returns function which when invoked will call fn function after specified timeout. If timeout is not provided nextTick propagation is used.

once(fn[, timeout]) (timers-ext/once)

Makes sure to execute fn function only once after a defined interval of time (debounce). If timeout is not provided nextTick propagation is used.

var nextTick = require("next-tick");
var logFoo = function() {
	console.log("foo");
};
var logFooOnce = require("timers-ext/once")(logFoo);

logFooOnce();
logFooOnce(); // ignored, logFoo will be logged only once
logFooOnce(); // ignored

nextTick(function() {
	logFooOnce(); // Invokes another log (as tick passed)
	logFooOnce(); // ignored
	logFooOnce(); // ignored
});

validTimeout(timeout) (timers-ext/valid-timeout)

Validates timeout value.
For NaN resolved timeout 0 is returned. If timeout resolves to a number:

  • for timeout < 0 0 is returned
  • for 0 >= timeout <= MAX_TIMEOUT, timeout value is returned
  • for timeout > MAX_TIMEOUT exception is thrown

Tests

$ npm test
You can’t perform that action at this time.