收藏
回答

两个getImageInfo都执行完毕后再执行画canvas,如何实现?


    var avatarDownLoadUrlTemp=wx.getStorageSync('avatarDownLoadUrl')//获取头像的网络地址
    var hasAvatarLocalUrl=false;
    var qianImageDownloadUrlTemp=wx.getStorageSync('qianImageDownloadUrl')//获取签的网络地址


    var hasQianImageLocalUrl=false;
    
    // 获取头像的本地地址
    wx.getImageInfo({
      src: avatarDownLoadUrlTemp,
      success:function(res){
        that.setData({
          avatarLocalUrl:res.path
        })
        hasAvatarLocalUrl=true;
      }
    })


    // 获取签图片的本地地址
    wx.getImageInfo({
      src: qianImageDownloadUrlTemp,
      success:function(res){
        that.setData({
          qianImageLocalUrl:res.path
        })
        hasQianImageLocalUrl=true;
      }
    })


// 后续代码是描述获取到avatarLocalUrl和qianImageLocalUrl后在本地画canvas

问题是:这两个getImageInfo函数都是异步函数,如何确保这两个异步函数都被执行完毕了再开始画canvas?求大神指导

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

3 个回答

  • 安逸
    安逸
    2021-04-21
      wx.getImageInfo({
        src'images/a.jpg',
        success(res) {
    
    
          wx.getImageInfo({
            src: 'images/b.jpg',
            success(res) {
    
              //这里开始画canvas
    
            }
          })
    
    
        }
      })
    
    2021-04-21
    有用 3
    回复 3
    • edison
      edison
      2021-04-21
      哈哈,但是这样嵌套可读性不太好,请教下promise.all如何使用
      2021-04-21
      回复
    • 安逸
      安逸
      2021-04-21回复edison
      2021-04-21
      3
      回复
    • edison
      edison
      发表于小程序端
      2021-04-21

      感谢

      2021-04-21
      回复
  • 加肥猫
    加肥猫
    2021-04-21

    尝试用 async/await 包装一下 wx.getImageInfo

    2021-04-21
    有用 1
    回复 2
    • edison
      edison
      2021-04-21
      这招有点牛逼
      2021-04-21
      回复
    • edison
      edison
      发表于小程序端
      2021-04-22回复edison

      能否写下示例让我学习一下

      2021-04-22
      回复
  • ruff
    ruff
    2021-04-21

    使用Promise.all

    2021-04-21
    有用
    回复 1
    • edison
      edison
      2021-04-21
      Promise.all 有点不太会写,请大神用这个例子给我指点下(大神!)
      2021-04-21
      回复
登录 后发表内容