收藏
回答

wx.cloud.downloadFile 没有按照代码顺序执行

  1. 在onShow 函数中有一段调用为了获取图片的地址

        let data = res.data[i]

        let imgurl = this.downloadPic(data)

        console.log("imgurl",imgurl) --//打印顺序3

2 自定义 downloadPic 返回tempFilePath

 downloadPic(data){

    let file_id  = "cloud://xxxxxxxxx/"+data.productdesc.productName+data.productdesc.productComment+"0.jpg"

    console.log("file_id",file_id) --//打印顺序1

    wx.cloud.downloadFile({

      fileID:file_id

    }).then((res)=>{      

      console.log("temppath",res.tempFilePath) --//打印顺序2

      return res.tempFilePath

    })

  }

期望的打印顺序是1,2,3

结果log里面顺序是1,3,2 导致临时目录无法获取到

这是为什么? 代码没有按照顺序执行?



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

1 个回答

  • Mr.Zhao
    Mr.Zhao
    2020-04-28

    js 异步 百度一下

    2020-04-28
    有用
    回复 5
    • 梁宇(Reborn)
      梁宇(Reborn)
      2020-04-28
      用了promise 但是不知道怎么将 then方法里面的value 返回出来,只能用console.log打印,
      2020-04-28
      回复
    • Mr.Zhao
      Mr.Zhao
      发表于小程序端
      2020-04-28回复梁宇(Reborn)
      async await
      2020-04-28
      回复
    • 梁宇(Reborn)
      梁宇(Reborn)
      2020-04-28
      then 方法返回的resolved 依然是一个 promise
      不知道怎么可以拿到 temFilePath

          return new Promise((resolved) => {
            wx.cloud.downloadFile({
              fileID: file_id
            }).then((res) => {
              resolved(res.tempFilePath)
            })
          })


      用这个方法也是一样,value不能return出来
          promise.then(function(value){
            console.log(value);
        }).catch(function(error){
            console.error(error);
        });
      2020-04-28
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-04-28回复梁宇(Reborn)
      示例代码:https://developers.weixin.qq.com/s/0aVNxWmK7pgS
      2020-04-28
      1
      回复
    • 梁宇(Reborn)
      梁宇(Reborn)
      2020-04-28
      thanks very much
      2020-04-28
      回复
登录 后发表内容
问题标签