【发布时间】:2021-05-15 14:35:38
【问题描述】:
我有一个数据数组,我正在使用 for 循环将这些数据发送到服务器。假设我们在 array 中有 3 个元素。它会同时调用 3 个 api,但我想要实现的是获得最后一个承诺解决响应,例如 3 个文件有 3 个不同的大小两个文件的大小很小,第三个文件的大小很大,这是有意义的,第三个文件将当大文件大小的承诺得到解决时需要一些时间我想控制那个响应。我真的很努力,但没有找到任何解决方案,有人可以帮助我。
for (let i = 0; i < selectedFiles.length; i++) {
let bodyFormData = new FormData()
bodyFormData.append('file', selectedFiles[i])
const options = {
onUploadProgress: (progressEvent) => {
const { loaded, total } = progressEvent
let percent = Math.floor((loaded * 100) / total)
selectedFiles[i].percentage = percent
this.setState({
progressInfos: selectedFiles,
})
},
}
axios
.post(`${config.apiPath}/api/fileUpload`, bodyFormData, options)
.then((res) => {
})
}
【问题讨论】:
-
你需要使用
Promise.all
标签: javascript reactjs ecmascript-6 axios fetch