使用Promise.all全部任务执行完毕再进入回调函数的特性 封装批量上传函数
// 上传文件
export const uploadFiles = (data) => {
// data这里是指二进制文件
let formData = new FormData()
formData.append('file', data.file)
return request({
url: '上传路径',
method: 'post',
data: formData
})
}
// 批量上传
export const uploadFilesList = (fileLsit) => {
let arr = []
const upFun = (file) => {
arr.push(
new Promise((resolve) => {
uploadFiles(file).then((res) => {
// 这里可以对返回的参数格式化处理
resolve(res)
})
})
)
}
fileLsit.map((item) => {
// item.raw是element上传组件拿到的文件流
let data = {
file: item.raw,
}
upFun(data)
})
return Promise.all(arr)
}
uploadFilesList(fileList).then(res=>{
// fileList内的文件全部上传完毕后触发
})