微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决

微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决

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

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

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

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

解决方法

一个上传完的标识,然后

用递归算法进行上传

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

贴上个代码

rush:js;"> //上传标识 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: "发布",<a href="https://www.jb51.cc/tag/dis/" target="_blank" class="keywords">dis</a>abled: false
     })

     Util.mesUrl("发布成功!","../index/index")
    }
    else {
     Util.mes("描述至少10人字以上哦,还有<a href="https://www.jb51.cc/tag/tupian/" target="_blank" class="keywords">图片</a>也要选哦!")
    }
   }
  })
 }else
 {
 //这里直接递归
 i++;
 that.uploadImg();
 }
},fail: function (e) {
 console.log(e)
 Util.mes("<a href="https://www.jb51.cc/tag/tupian/" target="_blank" class="keywords">图片</a><a href="https://www.jb51.cc/tag/shangchuan/" target="_blank" class="keywords">上传</a>失败,请重新发布!" + i)
}

})

},

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持

相关文章

开发微信小程序的用户授权登录功能
小程序开发页面如何实现跳转?
浅谈小程序开发中蓝牙连接错误分析及解决方法
什么是小程序?它有哪些功能?
如何配置小程序开发项目结构?(教程)
怎么把自己的店加入小程序