import { __extends } from "tslib"; | |
import { Scheduler } from '../Scheduler'; | |
var AsyncScheduler = (function (_super) { | |
__extends(AsyncScheduler, _super); | |
function AsyncScheduler(SchedulerAction, now) { | |
if (now === void 0) { now = Scheduler.now; } | |
var _this = _super.call(this, SchedulerAction, now) || this; | |
_this.actions = []; | |
_this._active = false; | |
return _this; | |
} | |
AsyncScheduler.prototype.flush = function (action) { | |
var actions = this.actions; | |
if (this._active) { | |
actions.push(action); | |
return; | |
} | |
var error; | |
this._active = true; | |
do { | |
if ((error = action.execute(action.state, action.delay))) { | |
break; | |
} | |
} while ((action = actions.shift())); | |
this._active = false; | |
if (error) { | |
while ((action = actions.shift())) { | |
action.unsubscribe(); | |
} | |
throw error; | |
} | |
}; | |
return AsyncScheduler; | |
}(Scheduler)); | |
export { AsyncScheduler }; | |
//# sourceMappingURL=AsyncScheduler.js.map |