例如,我有一个模型钱包.我需要执行几项操作.让我们说:
Async.waterfall([
Wallet.findOne(criteria1).exec(cb1);
Wallet.update(criteria2).exec(cb2);
Wallet.findOne(criteria3).exec(cb3);
Wallet.update(criteria4).exec(cb4);
], ...);
无论如何,ASync的语法都不完全正确.据我所知,它将逐个与数据库服务器建立四个连接.是否可以通过一个连接执行所有操作?
最佳答案 使用异步并行控制流程.
async.parallel({
one: function(cb1){
Wallet.findOne(criteria1).exec(cb1);
},
two: function(cb2){
Wallet.update(criteria2).exec(cb2);
},
three: function(cb3){
Wallet.findOne(criteria3).exec(cb3);
}
four: function(cb4){
Wallet.update(criteria4).exec(cb4);
}
},
function(err, results) {
// results is now equals to: {one: {}, two: {},three:{},four:{}}
});