等待所有图片上传完后允许执行某个操作——记一个工作中遇到的问题(uni-app项目)

1,562 阅读1分钟

业务步骤:

1. 使用uni.chooseImage批量上传图片,在success的回调中,需要先调用接口getUploadImageToken来获取上传图片的token,如56行所示

2. 在该函数中,首先获取token,成功后通过unploadQiniu函数调用七牛云的接口上传图片。

问题描述:

在之前的版本中,用户如果在图片上传完成前,点击提交,会导致未上传完成的图片丢失(传几张算几张)

解决方案:

将uploadQiniu函数封装成Promise,在图片上传结束后改变Promise状态,而getUploadImageToken函数返回的Promise会随着uploadQiniu函数返回的Promise的状态改变而改变,最后通过将所有getUploadImageToken函数返回的Promise由Promise.all函数执行,即可实现在所有图片上传完成后执行Promise.all的回调。