JSFiddle - React, Tailwind, and code Playground
by moritzkobrna
JavaScript
function timer(end = 100) {
var onEnd = function() {};
var onCount = function() {};
var interval = null;
var count = 0;
var registerOnEnd = function(cb) {
onEnd = cb;
return {
onCount: registerOnCount,
};
};
var registerOnCount = function(cb) {
onCount = cb;
return {
onEnd: registerOnEnd,
};
};
interval = setInterval(function() {
count = count + 1;
onCount(count);
if (count >= end) {
onEnd(count);
clearInterval(interval);
}
}, 10);
return {
onEnd: registerOnEnd,
onCount: registerOnCount,
};
}
timer(10)
.onCount(function(count) { console.log('ON COUNT', count)})
.onEnd(function() { console.log('END') });