Sha256: 8cbf5b17401d96e019429a22efcb2bae86be57e15c6cb2b98f3e96e1bdfeb304
Contents?: true
Size: 899 Bytes
Versions: 66
Compression:
Stored size: 899 Bytes
Contents
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 }
Version data entries
66 entries across 66 versions & 2 rubygems