summaryrefslogtreecommitdiff
path: root/build/es/internal/parallel.js
blob: b5329082322c5e304cad30597bbf7db089f5e187 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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);
    });
}