收藏
回答

云数据库查询数据和云存储删除文件时 API执行循序问题?

我要实现点击<view> 获取 id(获取id 是没问题的),然后根据id 从云数据库查询相关数据,再按照查出来的数据来删除运存里的文件,代码是这样写的:

  data: {

    allInfo: [],

    isFirst: true,

    xart: "",

    id: "",

    fileId: []

  },


  getyunFilesId: function () {

    let that = this;

    console.log(that.data.id)

    var deleteInfo=[]

    const db = wx.cloud.database()

    db.collection('asarlar').where({

      _id:that.data.id

    }).get().then(res => {

      deleteInfo=res.data;

      this.setData({fileId:deleteInfo[0].asarPic})

      console.log("获取云存储地址")

      console.log(that.data.fileId)

    })

    //-------------------------------------

    wx.cloud.deleteFile({

      fileList:that.data.fileId, //云文件 ID

      success: res => {

        console.log("删除云存储文件")

        console.log(res.fileList)

      },

      fail: console.error

    })


  },


运行结果是这样:

112557505f82927c001378da3d710800

删除云存储文件

[]nv_length: (...)length: 0__proto__: Array(0)

获取云存储地址

{0: "cloud://ibrave-hbzlb.6962-ibrave-hbzlb-1300060674/410734.2069152933.jpg"}

问题: 我先写的获取id 的代码,然后写的删除云存储文件的代码,为什么运行的时候,先执行删除云存储文件,在执行云数据库查询呢? 请高手帮忙?

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

1 个回答

  • Mr.Zhao
    Mr.Zhao
    2020-10-11

    因为异步问题,用async await 同步执行

    2020-10-11
    有用
    回复 3
    • Cherish every day
      Cherish every day
      2020-10-11
      函数写的小程序端,不在云函数端,这样也需要用async await 同步执行 吗
      2020-10-11
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-10-11回复Cherish every day
      跟在哪端没关系,js就是这样的
      2020-10-11
      1
      回复
    • Cherish every day
      Cherish every day
      2020-10-11回复Mr.Zhao
      谢谢,我试一试
      2020-10-11
      回复
登录 后发表内容
问题标签