infinite loop in nodejs
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
example
lib
.gitignore
README.md
index.js
package.json

README.md

infiniteLoop

Infinite loop for Node.js. Easy to Use & Good Performance

A helper for running tasks repeatly in Node.js.

get started by:

npm install infinite-loop

Easy to use:

  1. require it
var InfiniteLoop = require('infinite-loop');
  1. create a new il
var il = new InfiniteLoop;
  1. add a task
//simple ++ counter example
var counter = 0;
//task you want to run infinitely
function addOne() {
  counter++;
  console.log(counter);
}

//add it by calling .add
il.add(addOne, []);
  1. run it
il.run();

the infinite-loop is also chainable

il.add(addOne, counter).run();

The output will be:

1
2
3
4
5
6
...

Find out more feature at the APIs section

Good Performance

Infinite Loop use setImediate internally to run task repeatly.

APIs

.add

.add(function, [arguments...])

.add take one or more arguments.

The first one must be a function, the rest arguments are the function's arguments. If the first arguments is not a function , InfiniteLoop will throw an Error.

.run

invoke the task

.run([times])

.run() take one argument optionally. By setting the optional argument:times, the task will only run the exact times.

.setInterval

.setInterval(interval)

It will set an interval for the task.argument:interval should be a number and should >0

You should call .setInterval before .run

.removeInterval

.removeInterval() remove interval

.onError

.onError(errHandler) If not used properly, Infiniteloop will throws some error. By calling .onError, you could catch these errors, and prevent the app from crashing.

argument:errHandler must be a function

example:

il.onError(function(error){
    console.log(error);
});

you could emit custom errors by calling il.emit('error', new Error('error message'))

.stop

Stop the InfiniteLoop

example: stop the loop after 10 seconds

setTimeout( function(){
    il.stop();
    } , 10 * 1000);

by Spencer.Z