@ima/core
Version:
IMA.js framework for isomorphic javascript application
25 lines (24 loc) • 813 B
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "SerialBatch", {
enumerable: true,
get: function() {
return SerialBatch;
}
});
const _AbstractExecution = require("./AbstractExecution");
class SerialBatch extends _AbstractExecution.AbstractExecution {
/**
* @inheritDoc
*/ execute(...args) {
const zeroStage = Promise.resolve([]);
return this._jobs.reduce((lastStage, currentStage)=>lastStage.then((results)=>this._executeJob(currentStage, args).then(Array.prototype.concat.bind(results))), zeroStage);
}
_executeJob(stage, args) {
const result = stage(...args);
return result instanceof Promise ? result : Promise.resolve(result);
}
}
//# sourceMappingURL=SerialBatch.js.map
;