在业务中需要上传大文件,所以需要切片并发上传
async uploadChunks() {
const requestList = this.data.map(async ({ formData }) =>
request({
url: "http://localhost:3000",
data: formData
})
);
await Promise.all(requestList); // 并发切片
}
request({
url,
method = "post",
data,
headers = {},
requestList
}) {
return new Promise(resolve => {
const xhr = new XMLHttpRequest();
xhr.open(method, url);
Object.keys(headers).forEach(key =>
xhr.setRequestHeader(key, headers[key])
);
xhr.send(data);
xhr.onload = e => {
resolve({
data: e.target.response
});
};
});
}