【发布时间】:2019-08-24 19:53:56
【问题描述】:
我已经实现了以下代码来通过 <input type="file" /> 选择解析 CSV:
export async function parse(file: File) {
let content = '';
const reader = new FileReader();
reader.onload = function(e: any) {
content = e.target.result;
};
await reader.readAsText(file);
const result = content.split(/\r\n|\n/);
return result;
}
如果我运行此代码并在我声明result 的行上放置一个断点,它将成功检索文件的内容。如果我不放任何断点,则内容为空。如您所见,我在阅读器以文本形式读取文件的行中添加了await,但仍然无法正常工作。
【问题讨论】:
-
你应该返回一个Promise,而不是返回结果,并在
onload监听器中解决它 -
await在这里没有帮助。readAsText()不返回Promise。 -
FileReader is not return a promise try loadend event 这里是MDN
标签: javascript html