微信小程序 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)
}
})
},
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!