mirror of
https://github.com/xuxiaobo-bobo/boda_jsEnv.git
synced 2025-04-19 15:34:50 +08:00
28 lines
565 B
JavaScript
28 lines
565 B
JavaScript
/*! run-series. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
|
module.exports = runSeries
|
|
|
|
function runSeries (tasks, cb) {
|
|
var current = 0
|
|
var results = []
|
|
var isSync = true
|
|
|
|
function done (err) {
|
|
function end () {
|
|
if (cb) cb(err, results)
|
|
}
|
|
if (isSync) process.nextTick(end)
|
|
else end()
|
|
}
|
|
|
|
function each (err, result) {
|
|
results.push(result)
|
|
if (++current >= tasks.length || err) done(err)
|
|
else tasks[current](each)
|
|
}
|
|
|
|
if (tasks.length > 0) tasks[0](each)
|
|
else done(null)
|
|
|
|
isSync = false
|
|
}
|