html52.com
我爱小程序-开发者交流社区

多条记录同时提交时,当事务处理出错时,添加记录无法回滚?

try {

const transaction = await db.startTransaction()

var tjarray=[];

var updatearray=[];

var p1=true;

var p2=true;

var cz=[]

for(var i=0;i<data.length;i++){

let id=data[i]._id;

cz[i]=await transaction.collection('cl_kc').doc(id).get()

tjarray[i]=await transaction.collection('cl_buy').add({data:{bh:'Z0002',czy:'Z0004'}})

if (cz[i]){

updatearray[i] = await transaction.collection('cl_kc').doc(id).update({ data: { 'sl': 67 } })

}

if (tjarray[i]._id==null){

p1 = false

throw{msg:'dfsf'}

}

if (!updatearray[i].stats.updated) {

p2 = false;

throw { msg: updatearray[i].stats }

}

}

if (p1&&p2){

await transaction.commit()

console.log(`transaction succeeded`)

return {

success: true

}

}else{

await transaction.rollback(-100);

}

} catch (e) {

console.error(`transaction error`, e)

return {

success: false,

error: e

}


评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付