在云函数中,传入了一个数据集合,遍历这个数据集合,查询数据库是否存在该数据,如果存在则修改该条数据,如果不存在则新增一条数据,遍历集合的话是异步的话,这几步操作怎么同步,目前代码是这样的,并不成功
目前代码是这样的,改了下,单条是可以的,还是 Promise 这个用的不对,求教,在线等
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
const db =cloud.database()
const _=db.command
const result={
code:'',
body:''
}
// 云函数入口函数
exports.main = async (event, context) => {
if(event.datalist!=null && event.datalist.length>0){
for(i=0; i < event.datalist.length; i++){
const rst=await db.collection("dailymenu").where({
datetime:event.datalist[i].datetime
}).get();
await Promise.all(rst.data).then(res=>{
console.log(res)
if(res.length>0){
updatemenu(event.datalist[i],res[0]).then(resupdate=>{
result.code=200;
result.body=resupdate;
//resolve(result)
console.log(result);
})
}else{
addmenu(event.datalist[i]).then(resadd=>{
result.code=200;
result.body=resadd;
//resolve(result)
console.log(result);
})
}
})
}
console.log("end")
}
}
function addmenu(event){
console.log("update");
console.log(event);
return db.collection('dailymenu').add({
data:{
datetime:event.datetime,
menuinfo:event.menuinfo,
}
})
}
function updatemenu(event,data){
console.log("update");
console.log(event);
return db.collection('dailymenu').doc(data._id).update({
data:{
menuinfo:event.menuinfo,
}
})
}