我正在尝试使用FileReader读取文件:
async readFile(event: any) {
var file = event.target.files[0];
var data:string
if (file) {
var reader:FileReader = new FileReader();
reader.onload = async function (evt : FileReaderEvent) {
data = await evt.target.result;
console.log(evt.target.result);
};
console.log(file);
console.log(data);
await reader.readAsText(file);
await this.processFileContent(data);
}
}
然而,evt.target.result在我调用console.log(file)之后仍然会被打印出来。
有人知道如何获得文件的结果并将其传递给processFileContent函数吗?
3条答案
按热度按时间qncylg1j1#
对blob本身使用新的读取方法
备选方案:
7uhlpewt2#
需要利用reader将blob转换为base64,更喜欢使用async-await语法,所以我选择将reader逻辑提取到helper中,如下所示:
并在主代码中使用
await
调用它:d7v8vwbk3#