JSFiddle - React, Tailwind, and code Playground

by klarstil

HTML

<button>
  Start waiting timer
</button>
<div class="waiting-timer">

</div>

JavaScript

var waitingTimer = function(time, notify, callback) {
    var timer;

    // Make sure our values are defined.
    time = time || 10000;
    callback = callback || function() {};
    notify = notify || function() {};
    
    timer = window.setInterval(function() {
        notify.apply(null);
    }, 1000);
    
    window.setTimeout(function() {
        window.clearInterval(timer);
        callback.apply(null);
    }, time);
};

$('button').on('click', function() {
	var $waitingTimer = $('.waiting-timer');
	
    waitingTimer(5000, function() {
    	$waitingTimer.html($waitingTimer.html() + ".");
  	}, function() {
    	$waitingTimer.html("Done!");
  	});
});