异步编程 互动版

parallelLimit(tasks, limit, [callback])


parallelLimit函数和parallel类似,但是它多了一个参数limit。 limit参数限制任务只能同时并发一定数量,而不是无限制并发,示例如下:

async.parallelLimit([
    function(callback){
        callback(null, 'one');
    },
    function(callback){
        callback(null, 'two');
    }
],
2,
function(err, results){

});

将示例中tasks的回调函数用setTimeout在1000毫秒后调用,limit参数设置为1,然后在parallelLimit的回调函数中输出results,看一看整个过程花费了1s还是2s。
var async=require("async");
async.parallelLimit([
    function(callback){
        setTimeout(function(){
            callback(null, 'one');
        }, 1000);
    },
    function(callback){
        setTimeout(function(){
            callback(null, 'two');
        }, 1000);
    }
],
1,
function(err, results){
    console.log(results);
});