收藏
回答

我下面这个处理事务的云函数有错,云函数日志是这样子的,是有大佬帮忙解答吗?

const cloud = require('wx-server-sdk')

cloud.init({

  env: 'cloud1-7gfkdvn4d13b54c9'

})

const db = cloud.database({});

exports.main = async (event) => {

  try {

    const result = await db.runTransaction(async transaction => {

      const userRes = await transaction.collection('user').doc(event.user_id).get()

      if (userRes.data) {


        const updateuserRes = await transaction.collection('user').doc(event.user_id).update({

          data: {

            balance: userRes.data[0].balance - event.cost,

          }

        })


        const updatehistoryRes = await transaction.collection('history').add({

          data: {

               name:event.name,

               stamp:event.stamp,

               num:event.cost,

               type:0, //0表示钱包减少,1表示钱包增加

          }

        })


        

        return {

          balance: userRes.data[0].balance-event.cost,

        }

      } else {

        await transaction.rollback('失败了')

      }

    })


    return {

      success: true,

      result:result,

    }

  } catch (e) {

    console.error(`事务报错`, e)

    return {

      success: false,

      error: e

    }

  }

}

回答关注问题邀请回答
收藏

1 个回答

  • 小秃僧
    小秃僧
    2021-09-07

    解决了,应该改写成userRes.data.balance-event.cost

    2021-09-07
    有用 2
    回复
登录 后发表内容