async.series([
function(callback){
data.exists(user, callback)
},
function(callback){
period.refresh(user, callback)
}
],
function(err, results){
if(err) {
async.series([
function(callback){
data.generate(user, callback)
},
function(callback){
period.refresh(user, callback)
}
])
}
})
有没有更聪明的方法来处理异步?如果数据存在,则应该刷新, 否则应该生成一个刷新的。
谢谢。
答案 0 :(得分:1)
您可以使用3步瀑布而不是使用系列,而只需在第二步中检查用户。
async.waterfall([
function(callback) {
/* get user */
callback(null, user);
},
function(user, callback) {
if(user) return callback(null, user); // return early if user exists
/* create user */
callback(null, user);
},
function(user, callback) {
/* refresh user */
callback();
}
],
function(err) {
if(err) throw err;
/* process done successfully */
}
);