UNPKG

@compodoc/compodoc

Version:

The missing documentation tool for your Angular application

30 lines (25 loc) 905 B
export function promiseSequential(promises) { if (!Array.isArray(promises)) { throw new Error('First argument need to be an array of Promises'); } return new Promise((resolve, reject) => { let count = 0; let results = []; const iterateeFunc = (previousPromise, currentPromise) => { return previousPromise .then(function(result) { if (count++ !== 0) { results = results.concat(result); } return currentPromise(result, results, count); }) .catch(err => { return reject(err); }); }; promises = promises.concat(() => Promise.resolve()); promises.reduce(iterateeFunc, Promise.resolve(false)).then(res => { resolve(results); }); }); }