小程序云开发数据库异步问题
进行测试时发现写入的请假会被初始写入覆盖掉,自己加了一个promise all但是发现没有用,请问应该怎么解决
//添加今日字段
const checkin1 = db.collection("checkin1");
let $ = db.command.aggregate
checkin1.aggregate().addFields({ //添加新字段
totalPrice:$.multiply([y+m+d+'A'])
})
let promises = [];
//初始写入上午
promises.push(db.collection("classtime1").where({_id:`${w}`+'A'}).get().then( res => {
if (res.data[0].startime == null || res.data[0].startime === ''){
try {
checkin1.where({
}).update({
data: {
[[y+m+d+'A']] : '#ED1C24'
},
})
} catch(e) {
console.error(e)
}
}else{
try {
checkin1.where({
}).update({
data: {
[[y+m+d+'A']] : '#C3C3C3'
},
})
} catch(e) {
console.error(e)
}
}
}))
//初次写入下午
promises.push(db.collection("classtime1").where({_id:`${w}`+'P'}).get().then( res => {
if (res.data[0].startime == null || res.data[0].startime === ''){
try {
checkin1.where({
}).update({
data: {
[[y+m+d+'P']] : '#ED1C24'
},
})
} catch(e) {
console.error(e)
}
}else{
try {
checkin1.where({
}).update({
data: {
[[y+m+d+'P']] : '#C3C3C3'
},
})
} catch(e) {
console.error(e)
}
}
}))
Promise.all(promises).then(() => {
//写入上午请假
db.collection("leave").where({_id:y+m+d+'A'}).get().then( res => {
if (res.data.length != 0){
tphone = res.data[0].phone;
const n=tphone.length;
for (i=0;i<n;i++) {
try {
checkin1.where({_id:parseInt(tphone[i])
}).update({
data: {
[[y+m+d+'A']] : '#99D9EA'
},
})
} catch(e) {
console.error(e)
}
}
console.log(y+m+d+'A');
}
})
//db.collection("leave").where({_id:y+m+d+'A'}).remove()
//写入下午请假
db.collection("leave").where({_id:y+m+d+'P'}).get().then( res => {
if (res.data.length != 0){
tphone2 = res.data[0].phone;
const n2=tphone2.length;
for (i=0;i<n2;i++) {
try {
checkin1.where({_id:parseInt(tphone2[i])
}).update({
data: {
[[y+m+d+'P']] : '#99D9EA'
},
})
} catch(e) {
console.error(e)
}
}
}
})
//db.collection("leave").where({_id:y+m+d+'P'}).remove()
})