promise-waterfall extends promise utilities with sequential flow control like async.waterfall