async的基础使用
1 async each
语法格式each(collection, iteratee, [callback])
用途:遍历集合中的元素,并行对每个元素执行一定的操作,但是不保证执行顺序,结果不会传递给最终的callback函数(要传递结果,可选择async.map函数)
参数说明:
- collection是一个用于遍历的集合
-
iteratee(item, callback)
遍历函数,需要传入一个callback函数 - [callback]是一个可选的回调函数,当遍历函数返回时,执行此函数
例程:
var testArr=[];
for (var i = 1; i <= 10; i++) {
testArr.push(i);
}
var addConst = function (num, doneCallback) {
console.log(num+10);
return doneCallback(null);
};
async.each(testArr, addConst, function (err,results) {
console.log("Finished!");
});
这段代码会对数组中每个元素加10。
2 async map
语法格式map(collection, iteratee, [callback])
用途:遍历集合中的元素,并行对每个元素执行一定的操作,但是不保证执行顺序,产生一个新的集合,结果会传递给最终的callback函数
参数说明:
- collection是一个用于遍历的集合
-
iteratee(item, callback)
遍历函数,需要传入一个callback函数 - [callback]是一个可选的回调函数,当遍历函数返回时,执行此函数
例程:
var testArr=[];
for (var i = 1; i <= 10; i++) {
testArr.push(i);
}
var addConst = function (num, doneCallback) {
return doneCallback(null, num+10);
};
async.map(testArr, addConst, function (err, results) {
console.log("Finished!");
console.log(results);
});
这段代码会对数组中每个元素加10,结果会传递给最终的回调函数的results。
打印结果:
[ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 ]