小程序wx.uploadFile异步问题

问题:小程序上传文件后我需要后端返回的一个值,但这个值总是在最后面导致需要这个值的方法总是报错,打印测试后发现这它是异步的。但直接使用 await 来等待也不行。

app.js  页面
  /**
   * 
   * @param {*} imgPath 图片
   * @param {*} postfi 图片后缀名  注:要后后缀名是因为我限制了图片大小,使用了小程序的图片压缩方法但是压缩后的图片没有后缀名。上传到服务器后就无法展示。
   */
uploadList(imgPath, postfi){
    let token = wx.getStorageInfoSync("token");
    let url = this.globalData.api+'/oss/file/uploadList';
    return new Promise((resolve, reject) =>{
      wx.uploadFile({
        url: url,
        filePath: imgPath,
        name: 'file',
        formData: {'postfi': postfi},
        header: {
          'Accept': 'application/json',
          'token': token
        },
        success: res => {
          resolve(res.data);
        },
        fail: err => {
          reject(err);
        }
      })
    })
  },
    /**
   * 文件上传-多文件
   * @param {List} pathList 文件集合
   * @return {list<String>} 文件id的集合
   */
  async uploadFileList(pathList){
    wx.showLoading({
      title: '图片上传中.....',
    });
    var fileIdList = [];
    for (let i = 0; i < pathList.length; i++) {
      let fileId = await this.uploadList(pathList[i].url, pathList[i].postfi);
      fileIdList.push(fileId);
    }
    wx.hideLoading();
    return fileIdList;
  },

这里也需要 将这个方法变成异步的才可使用 await 来等待

调用的 页面
  async preserve(){
    let fileIdList = await app.uploadFileList(this.data.fileList);
  }

版权声明:本文为weixin_49200545原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。