我有一组文件,我需要将文件格式化为 json (此时为对象)以及一堆其他信息。这是我尝试过的
const uploadData = Files.map((file) => {
const fr = new FileReader();
fr.readAsArrayBuffer(file);
fr.onload = (event) =>{
const fileData = event.target.result;
return {
query:{
documentName: file.name,
personId: personId,
serviceId: serviceID,
documentFile: fileData,
}
}
}
})
我想使用不可变的技术。我确实猜测为什么这不起作用,但不知道如何解决它。我认为 .map 不会等待文件读取器读取,因此仅返回未定义值的数组。我尝试使用 IIFE 但没有成功。
最佳答案
const uploadData = [],
Files.forEach((file) => {
const fr = new FileReader();
fr.readAsArrayBuffer(file);
fr.onload = (event) =>{
const fileData = event.target.result;
uploadData.push(query:{
documentName: file.name,
personId: personId,
serviceId: serviceID,
documentFile: fileData,
})
}
})
由于回调中发生了 return,因此您应该使用 local var 并推送数据
关于javascript - 使用 .map() 使用 FileReader 读取多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38101377/