diff options
Diffstat (limited to 'build-es/internal/parallel.js')
-rw-r--r-- | build-es/internal/parallel.js | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/build-es/internal/parallel.js b/build-es/internal/parallel.js new file mode 100644 index 0000000..b532908 --- /dev/null +++ b/build-es/internal/parallel.js @@ -0,0 +1,22 @@ +'use strict'; + +import noop from 'lodash-es/noop'; +import isArrayLike from 'lodash-es/isArrayLike'; +import rest from 'lodash-es/rest'; + +export default function _parallel(eachfn, tasks, callback) { + callback = callback || noop; + var results = isArrayLike(tasks) ? [] : {}; + + eachfn(tasks, function (task, key, callback) { + task(rest(function (err, args) { + if (args.length <= 1) { + args = args[0]; + } + results[key] = args; + callback(err); + })); + }, function (err) { + callback(err, results); + }); +} |