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');
}