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);
});