【发布时间】:2018-06-18 18:26:11
【问题描述】:
我正在尝试使用 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 函数?
【问题讨论】:
-
processFileContent是否期望File对象(这是您现在给它的对象)或string? -
@Touffy 它需要一个字符串
-
那是你的第一个问题。您正在读取文件,但您并没有将结果保存在任何地方,更不用说将其传递给
this.processFileContent。 -
我猜它是先打印的,因为它在等待之前。并且稍后将在事件循环中调用异步内部函数...
-
@Touffy 我更新了代码以便存储结果,但仍有问题
标签: javascript typescript asynchronous