JSFiddle - React, Tailwind, and code Playground
HTML
<h1 id="time">00: 10</h1>
JavaScript
/**
* This is what current code looks like
*/
countdown(10, sayHi);
/**
* Can I do something like this instead?
*/
// countdown(10).then(sayHi);
function countdown(duration, callback) {
var display = document.querySelector('#time');
var start = Date.now(),
diff,
minutes,
seconds;
function timer() {
diff = duration - parseInt((Date.now() - start) / 1000);
minutes = parseInt(diff / 60);
seconds = parseInt(diff % 60);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
if (diff <= 0) {
clearInterval(interval);
callback();
}
};
timer();
var interval = setInterval(timer, 1000);
}
function sayHi() {
console.log('hi');
}