mirror of
https://github.com/fooflington/selfdefined.git
synced 2025-06-11 05:11:40 +00:00
update
This commit is contained in:
48
node_modules/run-parallel/index.js
generated
vendored
Normal file
48
node_modules/run-parallel/index.js
generated
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
module.exports = runParallel
|
||||
|
||||
function runParallel (tasks, cb) {
|
||||
var results, pending, keys
|
||||
var isSync = true
|
||||
|
||||
if (Array.isArray(tasks)) {
|
||||
results = []
|
||||
pending = tasks.length
|
||||
} else {
|
||||
keys = Object.keys(tasks)
|
||||
results = {}
|
||||
pending = keys.length
|
||||
}
|
||||
|
||||
function done (err) {
|
||||
function end () {
|
||||
if (cb) cb(err, results)
|
||||
cb = null
|
||||
}
|
||||
if (isSync) process.nextTick(end)
|
||||
else end()
|
||||
}
|
||||
|
||||
function each (i, err, result) {
|
||||
results[i] = result
|
||||
if (--pending === 0 || err) {
|
||||
done(err)
|
||||
}
|
||||
}
|
||||
|
||||
if (!pending) {
|
||||
// empty
|
||||
done(null)
|
||||
} else if (keys) {
|
||||
// object
|
||||
keys.forEach(function (key) {
|
||||
tasks[key](function (err, result) { each(key, err, result) })
|
||||
})
|
||||
} else {
|
||||
// array
|
||||
tasks.forEach(function (task, i) {
|
||||
task(function (err, result) { each(i, err, result) })
|
||||
})
|
||||
}
|
||||
|
||||
isSync = false
|
||||
}
|
Reference in New Issue
Block a user