JSFiddle - React, Tailwind, and code Playground

by Yauheni Pakala

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