我想读取多个文件的文件内容并将内容作为数组返回。
整个过程应该等到收到所有文件内容。
我的函数以某种方式仅在将一个文件作为输入时起作用。
一旦我输入了多个文件,getFileContent我就只收到第一个文件的结果。
有人可以提示我在构造中缺少什么吗?
interface FileInterface {
fileName: string;
fileContent: string | ArrayBuffer | null;
}
async function readFileAsync(file: File): Promise<string | ArrayBuffer | null> {
return new Promise((resolve, reject) => {
let fileReader: FileReader = new FileReader();
fileReader.onload = () => {
resolve(fileReader.result);
};
fileReader.onerror = reject;
fileReader.readAsArrayBuffer(file);
});
}
export async function getFileContent(
files: File[]
): Promise<Array<FileInterface>> {
const uploadedFiles: FileInterface[] = [];
for (let file of files) {
console.log(file.name);
let fileContent: ArrayBuffer = (await readFileAsync(file)) as ArrayBuffer;
uploadedFiles.push({ fileName: file.name, fileContent: null });
}
return uploadedFiles;
}
// files: File[]
const fileContents: FileInterface[] = await getFileContent(files);
LEATH
九州编程
相关分类