找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索本站精品资源

首页 教程频道 小程序开发 查看内容

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

作者:模板之家 2018-1-31 10:51 13906人关注

微信小程序上传图片的时候,如果是多图片上传,一般都是直接用一个循环进行wx.uploadFile 这个在电脑上面测试与苹果手机上面都不会有什么问题 但当用安卓测试的时候,你会发现小程

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

        }

      })

 

  },


路过

雷人

握手

鲜花

鸡蛋
原作者: 模板之家 来自: 网络收集

全部回复(0)