You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.3 KiB
37 lines
1.3 KiB
"use strict"; |
|
var __extends = (this && this.__extends) || function (d, b) { |
|
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; |
|
function __() { this.constructor = d; } |
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); |
|
}; |
|
var AsyncScheduler_1 = require('./AsyncScheduler'); |
|
var AsapScheduler = (function (_super) { |
|
__extends(AsapScheduler, _super); |
|
function AsapScheduler() { |
|
_super.apply(this, arguments); |
|
} |
|
AsapScheduler.prototype.flush = function (action) { |
|
this.active = true; |
|
this.scheduled = undefined; |
|
var actions = this.actions; |
|
var error; |
|
var index = -1; |
|
var count = actions.length; |
|
action = action || actions.shift(); |
|
do { |
|
if (error = action.execute(action.state, action.delay)) { |
|
break; |
|
} |
|
} while (++index < count && (action = actions.shift())); |
|
this.active = false; |
|
if (error) { |
|
while (++index < count && (action = actions.shift())) { |
|
action.unsubscribe(); |
|
} |
|
throw error; |
|
} |
|
}; |
|
return AsapScheduler; |
|
}(AsyncScheduler_1.AsyncScheduler)); |
|
exports.AsapScheduler = AsapScheduler; |
|
//# sourceMappingURL=AsapScheduler.js.map
|