问大佬们一个小程序上的一个问题
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 了
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你对 Promise 的理解有问题,Promise 会在定义后就在 Event Loop 里触发,并不会等你
.then
了才开始执行。我猜你是想写一个异步方法,等所有图片都上传结束后才返回。
参考: