async.series([
function(callback) {
// do some stuff ...
callback(null, 'one');
},
function(callback) {
// do some more stuff ...
callback(null, 'two');
}
],
// optional callback
function(err, results) {
// results is now equal to ['one', 'two']
});
async.series({
one: function(callback) {
setTimeout(function() {
callback(null, 1);
}, 200);
},
two: function(callback){
setTimeout(function() {
callback(null, 2);
}, 100);
}
}, function(err, results) {
// results is now equal to: {one: 1, two: 2}
});
results结果是['one','two']
parallel /并行
series 是依次执行,parallel是并行,数组中的每个function同时执行。任何一个function返回一个错误,则callback会调用传递的error并立即执行
async.parallel([
function(callback) {
setTimeout(function() {
callback(null, 'one');
}, 200);
},
function(callback) {
setTimeout(function() {
callback(null, 'two');
}, 100);
}
],
// optional callback
function(err, results) {
// the results array will equal ['one','two'] even though
// the second function had a shorter timeout.
});
// an example using an object instead of an array
async.parallel({
one: function(callback) {
setTimeout(function() {
callback(null, 1);
}, 200);
},
two: function(callback) {
setTimeout(function() {
callback(null, 2);
}, 100);
}
}, function(err, results) {
// results is now equals to: {one: 1, two: 2}
});
async地址
一些实用方法
callback
传递了一个error
,不会有更多的函数会执行,然后callback
会直接调用错误的值。否则,当所有的function
完成后callback`会接受一个结果数组。//简单点说,demo中
[]
内的两个function会依次执行。第二个参数是callback
,它可以接受数据。它可以提供一个
object
来代替数组。object
中的每一个属性都可以运行。结果同样会被传递到最终的callback,这里的不同之处就是传递的结果是个对象而不是数组。这个行为使得操作结果更具有可读性。results结果是['one','two']
series
是依次执行,parallel
是并行,数组中的每个function同时执行。任何一个function返回一个错误,则callback
会调用传递的error并立即执行