我有一些文件,我需要将文件格式化为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,但没有成功。
答案 0 :(得分:1)
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,
})
}
})
由于回调中发生了返回,因此您应该使用local var并推送数据