JSFiddle - React, Tailwind, and code Playground
HTML
<input type='button' id="test" value="test"/>
<span>press test three times to trigger</span>
JavaScript
var d = new $.Deferred();
var pendingCall=0;
function logPendingCall(){
console.log("wait in queue..no." + pendingCall);
if (pendingCall > 0) {
setTimeout(logPendingCall, pendingCall * 1000);
return d.promise();
} else {
d.resolve();
return d.promise();
}
}
function show(num){
alert(num);
}
var wrapper={
test:function(num){
logPendingCall().then(function() {
show(num);
});
}
};
$("#test").click(function(){
pendingCall-=1;
});
pendingCall+=1;
wrapper.test(1);
pendingCall+=1;
wrapper.test(2);
pendingCall+=1;
wrapper.test(2);