Pipe promises
Piping promises like a pro
by juanmirod
JavaScript
function pipePromises(...promisesFunctions) {
return promisesFunctions.reduce(
(lastPromise, f) => lastPromise.then(f),
Promise.resolve()
)
}
const promiseInc = i => Promise.resolve(i + 1)
pipePromises(
() => promiseInc(0),
promiseInc,
promiseInc,
promiseInc,
promiseInc
)
.then(console.log)
// 5