使用Promise.all全部任務(wù)執(zhí)行完畢再進入回調(diào)函數(shù)的特性 封裝批量上傳函數(shù)
// 上傳文件
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) => {
// 這里可以對返回的參數(shù)格式化處理
resolve(res)
})
})
)
}
fileLsit.map((item) => {
// item.raw是element上傳組件拿到的文件流
let data = {
file: item.raw,
}
upFun(data)
})
return Promise.all(arr)
}
uploadFilesList(fileList).then(res=>{
// fileList內(nèi)的文件全部上傳完畢后觸發(fā)
})