Function.parallel >= 0.1.2

Purpose

Run (async) functions in parallel

Syntax

Function.parallel ( Booleanforce_async= true Numberlimit Arraytasks Functioncallback );

Parameters

force_async
If set to false, the first task will be executed synchronously
limit
The amount of tasks that can run at the same time
tasks
Array of functions, or multiple functions
callback

Examples

Run an array of tasks

var tasks = [];

for (let i = 0; i < 5; i++) {
    tasks.push(function(next) {
        setTimeout(function() {
            next(null, i);
        }, 5)
    });
}

// 'done' will be called after all timeouts have fired,
// which is about 5ms
Function.parallel(tasks, function done(err, result) {
    
    console.log(err);
    >>> null
    
    console.log(result);
    >>> [0, 1, 2, 3, 4]
});

Use several function arguments as tasks

Function.parallel(function one(next) {
    next(null, 1);
}, function two(next) {
    next(null, 2);
}, function three(next) {
    next(null, 3);
}, function done(err, result) {
    console.log(err);
    >>> null
    
    console.log(result);
    >>> [1, 2, 3]
});