0
第一组文件上传成功,但一旦完成,它就不会启动队列中的下一组。使用Promise.map排队文件上传
为什么迭代在第一组之后停止,我该如何解决这个问题?
该解决方案不一定要使用蓝鸟 - 我首先使用它,因为我认为,我会变得更容易。
function uploadFile(url, file, onProgress) {
return new Promise((resolve, reject) => {
const formData = new FormData();
formData.append('file', file);
const xhr = new XMLHttpRequest();
xhr.open('POST', url);
xhr.addEventListener('readyState', _ => {
if (xhr.readyState === xhr.DONE) {
resolve(file);
}
});
xhr.addEventListener('error', _ => {
reject(new Error());
});
xhr.upload.addEventListener('progress', event => {
onProgress && onProgress(event.loaded/event.total);
});
xhr.send(formData);
});
}
/* files is a FileList */
Promise.map(Array.from(files), file => {
return uploadFile(location.href, file, null);
}, { concurrency: 2 });
你想要上传顺序,还是并行? –
我想并行上传2个文件。 –
我的第一个倾向将是检查你的决心是否真的被调用。 – powerc9000