云函数 const await 获取数据库数据,如果一个云函数触发10次,均返回第一次数据
发布于 5 年前 作者 leijie 14182 次浏览 来自 问答

流程:支付后触发云函数,回调会多次触发回调云函数,

回调云函数:1、从数据库got唯一的一组数据(一个字段设置为1)。2将这个数组一个字段update(为2),3,从新读取这个数组,(显示这个字段为2)

   //读取腾讯云数据库


        const  dingdan=await db.collection('dingdan')

          .where({outTradeNo:outTradeNo})

          .get()

          console.log('dingdan',dingdan.data[0])

          //读取腾讯云数据库 

  

 //写入最终腾讯云数据库

             await db.collection('dingdan')

             .where({outTradeNo:outTradeNo})

             .update({

              data: {

                zhuangtai:2,

              }

            })

         //写入最终腾讯云数据库

 

 let dingdanpd2=await db.collection('dingdan').doc(dingdan.data[0]._id).get()

 console.log('dingdanpd2',dingdanpd2.data)

由于回调云函数触发了比如10次(间隔2-3s),

导致的现象是:

我第一次调用,update后,打印的字段(一个字段显示为2)

过十几秒后,

比如第5次,触发,

1、从数据库got唯一的一组数据,打印的字段(一个字段显示为1)。

就是我明明改为2了,之后的几次调用,字段还是1

回到顶部