系列独立单任务
async.series(tasks, afterTasksCallback) 将执行一组任务。每个任务被执行后,另一个。如果任务失败,异步会立即停止执行并跳转到主回调。
任务成功完成后,异步调用主回调,包含所有错误和所有任务结果。
function shortTimeFunction(callback) {
setTimeout(function() {
callback(null, 'resultOfShortTime');
}, 200);
}
function mediumTimeFunction(callback) {
setTimeout(function() {
callback(null, 'resultOfMediumTime');
}, 500);
}
function longTimeFunction(callback) {
setTimeout(function() {
callback(null, 'resultOfLongTime');
}, 1000);
}
async.series([
mediumTimeFunction,
shortTimeFunction,
longTimeFunction
],
function(err, results) {
if (err) {
return console.error(err);
}
console.log(results);
});
结果: ["resultOfMediumTime", "resultOfShortTime", "resultOfLongTime"]
。
用对象调用 async.series()
你可以用对象替换 tasks 数组参数。在这种情况下,结果也将是具有与任务相同的键的对象。
计算某些任务并轻松找到每个结果非常有用。
async.series({
short: shortTimeFunction,
medium: mediumTimeFunction,
long: longTimeFunction
},
function(err, results) {
if (err) {
return console.error(err);
}
console.log(results);
});
结果: {short: "resultOfShortTime", medium: "resultOfMediumTime", long: "resultOfLongTime"}
。