index.js 565 B

123456789101112131415161718192021222324252627
  1. /*! run-series. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
  2. module.exports = runSeries
  3. function runSeries (tasks, cb) {
  4. var current = 0
  5. var results = []
  6. var isSync = true
  7. function done (err) {
  8. function end () {
  9. if (cb) cb(err, results)
  10. }
  11. if (isSync) process.nextTick(end)
  12. else end()
  13. }
  14. function each (err, result) {
  15. results.push(result)
  16. if (++current >= tasks.length || err) done(err)
  17. else tasks[current](each)
  18. }
  19. if (tasks.length > 0) tasks[0](each)
  20. else done(null)
  21. isSync = false
  22. }