parallel
var tasks = [...];
var completed = 0;
tasks.forEach(function(task) {
task(function() {
if(++completed === tasks.length) {
finish();
}
});
async的使用
async.series(tasks, [callback])
function task(callback) {}
async.series([
function(callback) { //[1]
request(url, function(err, response, resBody) {
if(err) {
return callback(err);
}
body = resBody;
callback();
});
},
mkdirp.bind(null, path.dirname(filename)), //[2]
function(callback) { //[3]
fs.writeFile(filename, body, callback);
}
], function(err) { //[4]
console.log('Downloaded and saved: ' + url);
if(err) {
return callback(err);
}
callback(null, body);
});