[英]make js function wait for eventlistener
我嘗試上傳一些文件。 我每次只需要上傳一個,因為我在一個 32b 的樹莓派上運行網絡服務器,它最多有 2gb 的帖子。
有誰知道如何讓 forloop 等到每個文件都被上傳。 我想上傳大量文件。 因此,如果它嘗試同時上傳 1000 個文件,它很可能會崩潰。 如何讓文件等到我收到事件管理器的響應
function uploadFiles(){
var userfiles = _("fileg").files;
for(var i = 0; i < userfiles.length; i++){
var formdata = new FormData();
var file = userfiles[i];
formdata.append("file", file);
formdata.append("username", "test");
var ajax = new XMLHttpRequest();
ajax.upload.addEventListener("progress", progressHandler, false);
ajax.addEventListener("load", completeHandler, false);
ajax.addEventListener("error", errorHandler, false);
ajax.addEventListener("abort", abortHandler, false);
ajax.open("POST", "parser.php");
ajax.send(formdata);
valu = i + 1;
_("status2").innerHTML = valu+"/"+userfiles.length;
}
}
我相信使用for
循環和 Fetch 很容易做到這一點:
const uploadFiles = async () => {
for (let file of _("fileg").files) {
const formdata = new FormData();
formdata.append("file", file);
formdata.append("username", "test");
await fetch('parser.php', {
method: 'post',
body: formdata
});
}
}
請求將按順序一一提出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.