现有两个任务,第一个在数据库查询,返回如果没有结果就进行第二个任务新建,如果有结果就结束任务。如果用async的话怎么实现? 原来用if else挺简单的,就是想如果用async模块的话该怎么写
12 回复
好像是这么写的吧: async.waterfall([function(cb) {col.findOne({_id: oi}, cb);}, function (r, cb) {if ( r ) return cb(); col.insertOne(obj, cb)}], function (err) {});
问题已经搞定,谢谢各位,附伪代码:
async.auto({
isExist: function (callback) {
model.getData(callback)
},
insert: ['isExist', function (callback, results) {
console.log(results)
if (results.isExist.length==0) {//判断是否存在
model.saveData(callback);
} else{
callback && callback(null, results)
}
}],
update: ['insert', function (callback) {
model.updateData(callback);
}]
}, function (err, resultss) {
callback && callback(err, resultss)
})