概述:uni-app 上传图片的时候 ,多选上传图片,需要用到循环中掉接口上传。正常在循环中请求的时候 明明电脑上没有任何问题,但是在手机上就出现了选择多张图片同时上传,跟多次上传同一张的图片一样。
正常思路(电脑上能行 但是手机上就是行不通)
clickMethods() {
this.list.forEach(item=>{
request({param:item}).then(res=>{
console.log(res)
})
})
}
经大佬指点–传入上传的参数的时序出问题 用 async 和 await (成功解决) 这里会有async 和 await 的缺点 只要一个await 失败,后续都不会运行
clickMethods: async function(){
this.list.forEach(item=>{
let res = await Promise.resolve(request({param:item}))
console.log(res)
})
}
网络上的大神也提供了一种解决方案 用递归来代替 for 循环
let i = 0
getImg();
function getImg() {
if (i >= this.list.length) {
return;
}
let paramObj = {
param = list[i]
}
request(paramObj).then(res => {
console.log(res)
i++
getImg();
})
}