Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Timers extensions
JavaScript
Branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
test
.gitignore
.lint
.travis.yml
CHANGES
LICENSE
README.md
delay.js
max-timeout.js
once.js
package.json
valid-timeout.js

README.md

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 fn function is invoked only once in given timeout span. 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 Build Status

$ npm test
Something went wrong with that request. Please try again.