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