Estoy usando dos funciones, dos manejan la carga de múltiples archivos en ReactJS.
const doSomethingAsync = (file, formD)=>{ return new Promise((resolve) =>{ const type = file.type.split("/")[0]; const filename = file.name; // file reader to preview file let reader = new FileReader(); reader.onload = () => { formD.append("fileList", file, filename); setSelectedFileForUpload((prevState) => [ ...prevState, { file: reader.result, type: type, name: filename, }, ]); }; reader.readAsDataURL(file); }); } const handleFileUpload = (e) => { const files = e.target.files; if (!files) return false; let formD = new FormData(); console.log("START"); for (const file of files) { console.log("MID"); doSomethingAsync(file,formD); } console.log("END"); for (const file of formD) { console.log(file); // not getting file. Don't know why. } }; Si lo uso quiero subir dos archivos (o un archivo). Después
SALIDA (si subimos dos archivos):
START MID MID END Como puede ver, estoy recorriendo formData usando:
for (const file of formD) { console.log(file); // not getting file. Don't know why. } Pero NO se está ejecutando (puede deberse a que la longitud es 0). Así que quiero obtener formData después for of se complete el ciclo.