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)