收藏
回答

for循环上传多张图片,为何IOS系统只调用一次 wx.uploadImage?

for (; index < 10; index++) {
    uploadImageSourceToWeChat(subjectExtend, index).then(function(res) {// do some work
    })
}

function uploadImageSourceToWeChat(subjectExtend, orderNo) {
    console.log("这里会执行多次")
    return new Promise(function(resolve, reject) {
        console.log("这里也会执行多次")
        setTimeout(function() {
            wx.uploadImage({
                localId: subjectExtend.content[orderNo],
                isShowProgressTips: 0,
                success: function success(res) {
                    console.log("这里只执行一次")
                },
                fail: function fail() {
                    alert('上传微信图片失败!');
                    reject();
                }
            });
        }, 100);
    }
    );
}


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

5 个回答

  • 呆~
    呆~
    2020-07-02

    作用域问题

    2020-07-02
    有用 1
    回复
  • 阮洋
    阮洋
    2021-09-08
      private getImgBase64(wxLocalIds: string[], index: number) {
        if (index >= wxLocalIds.length) {
          return;
        }
        const that = this;
        wx.getLocalImgData({
          localId: wxLocalIds[index],
          success(res: any) {
            that.localIds.push(res.localData);
            const tmp = index + 1;
            that.getImgBase64(wxLocalIds, tmp);
          },
        });
      }
    
    2021-09-08
    有用
    回复
  • Bug Engineer
    Bug Engineer
    2020-07-02

    等一次执行完之后再执行下一次

    2020-07-02
    有用
    回复
  • smart
    smart
    2020-07-02

    兄弟 用闭包解决下吧

    2020-07-02
    有用
    回复 1
  • A notorious liar(小花猫)
    A notorious liar(小花猫)
    2020-07-02

    知道吗for循环休一下子就跑完了不出意外你这代码能调用的那次估计是第一张图片或者最后一张吧。不能用for循环,还没传完for已经跑完了。

    2020-07-02
    有用
    回复 2
    • 沉着的卷心菜
      沉着的卷心菜
      2020-07-02
      需要怎么改写啊?
      2020-07-02
      回复
    • A notorious liar(小花猫)
      A notorious liar(小花猫)
      2020-07-02回复沉着的卷心菜
      不要用for自己写一个循环,设置一个参数。把图片地址集合在一个数组内,没成功执行一次参数加一,参数小于图片数组的长度,依次上传,
      2020-07-02
      回复
登录 后发表内容
问题标签