Files
galaxy/static/scripts/utils/deferred.js
T

3 lines
769 B
JavaScript

"use strict";define(["utils/utils"],function(e){return Backbone.Model.extend({initialize:function(){this.active={},this.last=null},execute:function(t){var i=this,a=e.uid(),s=t.length>0;this.active[a]=!0;var n=$.Deferred();n.promise().always(function(){delete i.active[a],s&&Galaxy.emit.debug("deferred::execute()",this.state().charAt(0).toUpperCase()+this.state().slice(1)+" "+a)}),$.when(this.last).always(function(){i.active[a]?(s&&Galaxy.emit.debug("deferred::execute()","Running "+a),t(n),!s&&n.resolve()):n.reject()}),this.last=n.promise()},reset:function(){Galaxy.emit.debug("deferred::execute()","Reset");for(var e in this.active)this.active[e]=!1},ready:function(){return $.isEmptyObject(this.active)}})});
//# sourceMappingURL=../../maps/utils/deferred.js.map