JSFiddle - React, Tailwind, and code Playground
by CodeRenaissance
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-debug.js"></script>
JavaScript
var actionChainManager = (function(){
var $ = jQuery;
var isBusy = ko.observable(false);
var actionChain = $.when();
function add(fn){
var contextActionChain;
if(typeOf(fn) === "function"){
isBusy(true);
actionChain = $.when(actionChain).then(fn);
contextActionChain = actionChain;
contextActionChain.done(function(){
if(contextActionChain === actionChain){
actionChain = null;
isBusy(false);
}
});
}
}
return {
add: add,
isBusy: isBusy
};
}());