imgupload: function (imgdata, id, token) {
return new Promise((resolve,reject)=>{
if (imgdata.length == 0) {
//无图片上传
} else {
let uploads = []
imgdata.forEach((v, i) => {
uploads[i] = new Promise((resolve) => {
wx.uploadFile({
url: ''
filePath: v,
name: 'img',
formData: {
id: id,
token: token
},
success: (res) => {
if (res.code == 200) {
resolve('ok')
}
}
})
})
})
Promise.all(uploads).then(r=>{
resolve('all ok')
})
}
})
}
这种哪里出问题了呀,uploadFile在forEach里面执行了,都不能用promise all 了
你对 Promise 的理解有问题,Promise 会在定义后就在 Event Loop 里触发,并不会等你
.then
了才开始执行。我猜你是想写一个异步方法,等所有图片都上传结束后才返回。
参考: