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