overleaf/services/web/frontend/js/infrastructure/promise.js

10 lines
380 B
JavaScript
Raw Normal View History

// run `fn` in serie for all values, and resolve with an array of the resultss
// inspired by https://stackoverflow.com/a/50506360/1314820
export function mapSeries(values, fn) {
return values.reduce((promiseChain, value) => {
return promiseChain.then(chainResults =>
fn(value).then(currentResult => [...chainResults, currentResult])
)
}, Promise.resolve([]))
}