Promise.all 輪詢批量上傳文件封裝

使用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ā)
})
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容