云数据库查询数据和云存储删除文件时 API执行循序问题?
发布于 6 年前 作者 juanyan 2584 次浏览 来自 官方Issues

我要实现点击<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 回复

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

回到顶部