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

1 line
862 B
JavaScript

define("utils/deferred",["exports","utils/utils"],function(e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=function(e){return e&&e.__esModule?e:{default:e}}(t);e.default=Backbone.Model.extend({initialize:function(){this.active={},this.last=null},execute:function(e){var t=this,a=i.default.uid(),s=e.length>0;this.active[a]=!0;var r=$.Deferred();r.promise().always(function(){delete t.active[a],s&&Galaxy.emit.debug("deferred::execute()",this.state().charAt(0).toUpperCase()+this.state().slice(1)+" "+a)}),$.when(this.last).always(function(){t.active[a]?(s&&Galaxy.emit.debug("deferred::execute()","Running "+a),e(r),!s&&r.resolve()):r.reject()}),this.last=r.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)}})});