Flexible reliable counting. Uses periodic to stay on time.
var count = require('encounter');
// count from -2 to 2 in steps of 0.1 every 100 ms
count()
.from(-2)
.to(2)
.step(0.1)
.every(100)
.start()
.on('tick', function (val) {
console.log('tick: ' + val);
})
.on('end', function () {
console.log('counting ended');
});
encounter has sensible defaults, so the common use cases are easy:
// count down
count().from(10).start().on('tick', console.log);
// fast count up
count().to(10).every(100).start().on('tick', console.log);
encounter makes sure it stays in time even when the event loop is busy.
Start counting at val. Defaults to 0.
Count until val. Defaults to 0.
Progress the counter by val each step. Defaults to 1.
Progress the counter every val milliseconds. Defaults to 1000.
Start counting.
End counting.
Calls fn with the current tick value, starting from the initial value.
Calls fn when to is reached.
With npm do
$ npm install encounter
Alternatively, with component do
$ component install juliangruber/encounter
(MIT)