zoukankan      html  css  js  c++  java
  • 微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决

    微信小程序上传图片的时候,如果是多图片上传,一般都是直接用一个循环进行wx.uploadFile

    这个在电脑上面测试与苹果手机上面都不会有什么问题

    但当用安卓测试的时候,你会发现小程序会提示一个the same task is working

    wx.uploadFile不能并行,因为wx.uploadFile是一个异步函数,所以循环的时候在安卓手机上会出现并行

    解决的方法

    做一个上传完的标识,然后

    用递归算法进行上传

    在上传成功的回调函数里面,直接递归,标识满足直接跳出,完成所有图片上传

    贴上个代码段

    //上传标识
    var i=0
    //imglist为要上传图片的路径数组
    uploadImg: function () {	
        var that = this
        if (i == imglist.length) {
        //清空还原
          news = ""
          city = ""
            i=0
          wait = true
          imglist = []
          serverImg = []
          retrunList = []
          that.setData({
            loding: false,
            src: [],
            disabled: false
          })
          return;
        }
          var imgcount = imglist.length;
          wx.uploadFile({
            url: config.serverUrl('index.php/user/uploadtu'), 
            filePath: imglist[i],
            name: 'file',
            formData: { 'user': 'test' },
            success: function (res) {
              serverImg.push(res.data)
              if (imgcount == serverImg.length) {
                var serverImgStr = serverImg.join("|")
                wx.request({
                  url: config.serverUrl('index.php/user/baobeiadd'), 
                  method: 'POST',
                  data: Util.json2Form({
                    imglist: serverImgStr,
                    userId: userId,
                    news: news,
                    city: city,
                    latitude: latitude,
                    longitude: longitude
                  }),
                  header: {
                    'content-type': 'application/x-www-form-urlencoded'
                  },
                  success: function (res2) {
                    if (res2.data.state == "ok") {
    
                      that.setData({
                        loding: false,
                        butTxt: "发布",
                        disabled: false
                      })
                      
                      Util.mesUrl("发布成功!", "../index/index")
                    }
                    else {
                      Util.mes("描述至少10人字以上哦,还有图片也要选哦!")
                    }
                  }
                })
              }else
              {
              //这里直接递归
              i++;
              that.uploadImg();
              }
            },
            fail: function (e) {
              console.log(e)
              Util.mes("图片上传失败,请重新发布!" + i)
            }
          })
    
      },
    

      

  • 相关阅读:
    Hadoop WordCount改进实现正确识别单词以及词频降序排序
    两个栈实现一个队列
    数据库弱一致性四个隔离级别
    vs2008生成lib文件
    开始整理资料
    基于AKS素性检测的素数生成器
    生成指定位数的随机数
    Windows 7远程桌面 重启 关机 任务管理器 命令
    摩根IT实习经验谈及其他
    Hadoop下进行反向索引(Inverted Index)操作
  • 原文地址:https://www.cnblogs.com/0xzroot/p/6161180.html
Copyright © 2011-2022 走看看