'use strict';
exports.main = async (event, context) => {
const item = event.item;
const oid = event.oid;
const babyOrRelation = event.babyOrRelation||'all';
let babyId = event.babyId;
const db = uniCloud.database();
const transaction = await db.startTransaction();
try{
if('baby,all'.indexOf(babyOrRelation)!=-1){
const baby = await transaction.collection('lm_baby').add({
name: item.name.value,
sex: item.sex.value,
birthday: new Date(item.birthday.value),
avatarUrl:item.avatarUrl.value,
createTime: Date.now()
});
babyId = baby.id;
console.log(baby);
}
let res = null;
if('relation,all'.indexOf(babyOrRelation)!=-1){
if(babyId){
console.log("lm_baby_relation添加开始");
res = await transaction.collection('lm_baby_relation').add({
oid:oid,
babyId:babyId,
relation: item.relation.value
});
console.log("lm_baby_relation添加结束,出参:",res)
}
}
transaction.commit();
console.log(JSON.stringify(res));
return res;
}catch(e){
console.log(e);
transaction.rollback();
}
};

1***@qq.com
- 发布:2022-11-03 11:06
- 更新:2022-11-03 11:39
- 阅读:282
产品分类: uniCloud/App
示例代码:
操作步骤:
- 本地函数测试没问题
2.云函数不使用事务没问题
3.云函数使用事务后,再控制台查询云数据库,没有数据。云函数日志中提示数据保存成功,并放回主键_id
- 本地函数测试没问题
2.云函数不使用事务没问题
3.云函数使用事务后,再控制台查询云数据库,没有数据。云函数日志中提示数据保存成功,并放回主键_id
预期结果:
云函数使用事务后,再控制台查询云数据库,有数据。
云函数使用事务后,再控制台查询云数据库,有数据。
实际结果:
云函数使用事务后,再控制台查询云数据库,没有数据。
云函数使用事务后,再控制台查询云数据库,没有数据。
bug描述:
先说下现象:
- 本地函数测试没问题
2.云函数不使用事务没问题
1 个回复
DCloud_uniCloud_WYQ
await transaction.commit();
少了await