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; _this._scheduled = undefined; 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