欢迎光临,了解微信小程序开发,就上易用通!

wx.uploadFile在安卓机the same task is working解决方法

发布:2018-01-31 10:53浏览: 来源:网络 作者:cola

微信小程序上传图片的时候,如果是多图片上传,一般都是直接用一个循环进行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,

        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)

        }

      })

 

  },





免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。