在微信小程序开发中,使用prominse.ll方法,实现wx.cloud.uploadfile..多图上传,不使用async/await
时间: 2024-05-11 15:16:16 浏览: 162
微信小程序实现一张或多张图片上传(云开发)
5星 · 资源好评率100%
可以尝试使用Promise.all()方法配合Array.map()方法来实现多图上传。具体代码如下:
```javascript
// 需要上传的文件数组
const files = [file1, file2, file3];
// 使用Array.map()方法遍历文件数组,调用wx.cloud.uploadFile()上传文件
const uploadTasks = files.map(file => wx.cloud.uploadFile({
cloudPath: file.cloudPath,
filePath: file.filePath
}));
// 使用Promise.all()方法将所有上传任务组合成一个Promise对象
Promise.all(uploadTasks)
.then(res => {
console.log("所有文件上传成功:", res);
// 文件上传成功后的处理逻辑
})
.catch(err => {
console.error("文件上传失败:", err);
// 文件上传失败后的处理逻辑
});
```
上面的代码中,我们首先定义一个文件数组,其中每个元素包含要上传的文件的cloudPath和filePath属性。然后我们使用Array.map()方法遍历文件数组,并按序调用wx.cloud.uploadFile()方法上传每个文件。上传任务数组uploadTasks中收集了所有文件上传任务的Promise对象,然后使用Promise.all()方法将所有上传任务组成一个Promise对象。当所有Promise对象都成功时,Promise.all()返回一个包含所有Promise对象执行结果的数组,然后我们可以在then()方法中处理所有文件上传成功的逻辑。如果中间有任何一个Promise对象失败,则Promise.all()会立即返回一个Rejected状态的Promise对象,并且会跳过后续任务的执行,立即执行catch()方法中的逻辑。
阅读全文