JSFiddle - React, Tailwind, and code Playground
HTML
<div id="timer"></div>
JavaScript
/**
* @param seconds - time
* @param tick - callback
* @param result - callback
*/
function timer (seconds, tick, result) {
if (seconds > 0) {
tick(seconds);
seconds -= 1;
setTimeout(function () {
timer(seconds, tick, result);
}, 1000);
} else {
result();
}
}
var element = document.querySelector('#timer');
timer(3, function (s) {
element.textContent = s + ' second has passed!';
}, function () {
element.textContent = 'Time is over!';
});