微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
微信小程序wx.uploadFile在安卓手机上面thesametaskisworking问题解决
微信小程序上传图片的时候,如果是多图片上传,一般都是直接用一个循环进行wx.uploadFile
这个在电脑上面测试与苹果手机上面都不会有什么问题
但当用安卓测试的时候,你会发现小程序会提示一个thesametaskisworking
wx.uploadFile不能并行,因为wx.uploadFile是一个异步函数,所以循环的时候在安卓手机上会出现并行
解决的方法
做一个上传完的标识,然后
用递归算法进行上传
在上传成功的回调函数里面,直接递归,标识满足直接跳出,完成所有图片上传
贴上个代码段
//上传标识 vari=0 //imglist为要上传图片的路径数组 uploadImg:function(){ varthat=this if(i==imglist.length){ //清空还原 news="" city="" i=0 wait=true imglist=[] serverImg=[] retrunList=[] that.setData({ loding:false, src:[], disabled:false }) return; } varimgcount=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){ varserverImgStr=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) } }) },
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!