2.0.1 • Published 11 years ago
intrvl v2.0.1
intrvl
Lightweight, efficient extension of the interval API
Installation
npm install intrvlUsage
intrvl.setIntrvl(toExecute, intervalMillis, timeoutMillis, maxExecutionCount)
toExecuteFunction. Executes at every intervalintervalMillisNumber. How many milliseconds between executiontimeoutMillisNumber. How long to allow the interval to run before stopping. Leftundefined, the interval will run without a timeoutmaxExecutionCountNumber. How many times to execute the interval before stopping. Leftundefined, the interval will run without a max
Returns a new Intrvl class instance (running by default)
Class: intrvl.Intrvl
Passed back from the intrvl.setIntrvl method.
Intrvl.stop()
Causes the interval to stop execution, as if a timeout or max had been reached.
var setIntrvl = require('intrvl').setIntrvl;
var interval = setIntrvl(function(){
console.log('Hello, World')
}, 1000); // runs indefinitely
interval.on('stop', function(execCount) {
console.log('Stopped after ' + execCount + ' executions');
});
// ... do some other logic, answer some server requests, etc..
// ... oh no, I need to cancel the interval!
interval.stop();Event: 'exec'
Emitted on each execution of the interval. Argument is the current execution count
var setIntrvl = require('intrvl').setIntrvl;
var interval = setIntrvl(function(){
console.log('Hello, World');
}, 1000, undefined, 5); // executes every second, stops after 5 executions
interval.on('exec', function(execCount) {
console.log('Execution ' + execCount + ' occured');
});Event: 'stop'
Emitted when an interval has finished, either by self-imposed limits (timeoutMills, maxExecutionCount), or by calling .stop() on a running instance. Argument is the total execution count
var setIntrvl = require('intrvl').setIntrvl;
var interval = setIntrvl(function(){
console.log('Hello, World');
}, 1000, undefined, 5); // executes every second, stops after 5 executions
interval.on('stop', function(execCount) {
console.log('Executions: ' + execCount);
});More Examples
Using competing configurations
// runs every 1 ms, ends after 100ms or 100 executions, whichever happens first!
var setIntrvl = require('intrvl').setIntrvl;
var intervalMillis = 1;
var timeoutMillis = 100;
var maxExecutionCount = 100;
var interval = setIntrvl(function() {
console.log('Hello, World');
}, intervalMillis, timeoutMillis, maxExecutionCount);
interval.on('stop', function(execCount) {
console.log('ENDED: ' + execCount);
});Inifinite intrvl still gives us events!
// runs every 1 ms, never ends
// might as well use setInterval at this point, right?
// hold up - we can still have fun with events!
var setIntrvl = require('intrvl').setIntrvl;
var intervalMillis = 1;
var timeoutMillis = undefined;
var maxExecutionCount = undefined;
var interval = setIntrvl(function() {
console.log('Hello, World');
}, intervalMillis, timeoutMillis, maxExecutionCount);
interval.on('exec', function(execCount) {
console.log('Execution count is growing, currently at ' + execCount);
});
interval.on('stop', function(execCount) {
console.log('I\'m never-ending, unless someone else tells me otherwise');
});