1***@qq.com
1***@qq.com
  • 发布:2022-11-03 11:06
  • 更新:2022-11-03 11:39
  • 阅读:218

【报Bug】云函数事务bug

分类:uniCloud

产品分类: uniCloud/App

示例代码:
'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. 本地函数测试没问题
    2.云函数不使用事务没问题
    3.云函数使用事务后,再控制台查询云数据库,没有数据。云函数日志中提示数据保存成功,并放回主键_id

预期结果:

云函数使用事务后,再控制台查询云数据库,有数据。

实际结果:

云函数使用事务后,再控制台查询云数据库,没有数据。

bug描述:

先说下现象:

  1. 本地函数测试没问题

2.云函数不使用事务没问题

2022-11-03 11:06 负责人:无 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

await transaction.commit(); 少了await

要回复问题请先登录注册