| /** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */ |
| import * as tslib_1 from "tslib"; |
| import { Scheduler } from '../Scheduler'; |
| var AsyncScheduler = /*@__PURE__*/ (function (_super) { |
| tslib_1.__extends(AsyncScheduler, _super); |
| function AsyncScheduler(SchedulerAction, now) { |
| if (now === void 0) { |
| now = Scheduler.now; |
| } |
| var _this = _super.call(this, SchedulerAction, function () { |
| if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) { |
| return AsyncScheduler.delegate.now(); |
| } |
| else { |
| return now(); |
| } |
| }) || this; |
| _this.actions = []; |
| _this.active = false; |
| _this.scheduled = undefined; |
| return _this; |
| } |
| AsyncScheduler.prototype.schedule = function (work, delay, state) { |
| if (delay === void 0) { |
| delay = 0; |
| } |
| if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) { |
| return AsyncScheduler.delegate.schedule(work, delay, state); |
| } |
| else { |
| return _super.prototype.schedule.call(this, work, delay, state); |
| } |
| }; |
| 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 |