async/await函数中能嵌套await吗?for中的函数能写await吗?
发布于 5 年前 作者 qiang55 8070 次浏览 来自 问答

我想先执行2.1再执行3,但是因为异步导致出现了问题.

现在主要有两个问题,

1.async/await函数中能再设置一个吗?如果可以我把2.1再设置一个.async/await(尝试过了,但是老报错)

2.for中的函数能写await吗(同样尝试过了,但是老报错)

求大神帮忙看看,谢谢

downExcel: async function () {
    await this.takeFileIDtoURL();
      //  console.log("4.调用云函数开始----", this.data.userdata),
      // wx.cloud.callFunction({
      //   // 要调用的云函数名称
      //   name: 'excel',
      //   data: {
      //     tmp: userdata
      //   }
      // }).then(res => {
      //   this.getFileUrl(res.result.fileID)
      //   console.log(res)
      // }).catch(err => {
      //   console.log(err)
      // })

  },

  takeFileIDtoURLfunction () {
    return new Promise((resolve) => {
      setTimeout(function() {
      bqj_dayHTs.get().then(res => {
        var userdata = res.data
        console.log("1.userdata已获取-----", userdata)
        console.log("2.userdata中Image转换开始----",)
        for (let key in userdata) {
          console.log("2.0userdata[key].image1", userdata[key].image1)
           wx.cloud.getTempFileURL({
            fileList: [userdata[key].image1],
            successres => {
              console.log("2.1文件下载链接", res.fileList[0].tempFileURL)
              this.setData({
                fileUrl: res.fileList[0].tempFileURL
              })
              console.log("2.2this.data.fileUrl"this.data.fileUrl)
              userdata[key].image1 = this.data.fileUrl
              console.log("2.3.userdata[key].image1", userdata[key].image1)
            }
          })
        }
        console.log("3.userdata中Image转换结束----",)
        resolve("hello");
      }, 1000)
      })
    })
  },
1 回复

可以肯定的回答:for里可以await.

回到顶部