UNPKG

@ima/core

Version:

IMA.js framework for isomorphic javascript application

15 lines (14 loc) 588 B
import { AbstractExecution } from './AbstractExecution'; export class SerialBatch extends 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