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

前端之家收集整理的这篇文章主要介绍了微信小程序 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是一个异步函数,所以循环的时候在安卓手机上会出现并行

解决方法

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

用递归算法进行上传

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

贴上个代码

上传标识 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人字以上哦,还有<a href="/tag/tupian/" target="_blank" class="keywords">图片</a>也要选哦!")
    }
   }
  })
 }else
 {
 //这里直接递归
 i++;
 that.uploadImg();
 }
},fail: function (e) {
 console.log(e)
 Util.mes("<a href="/tag/tupian/" target="_blank" class="keywords">图片</a><a href="/tag/shangchuan/" target="_blank" class="keywords">上传</a>失败,请重新发布!" + i)
}

})

},

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

猜你在找的微信小程序相关文章