【发布时间】:2020-04-30 21:56:42
【问题描述】:
我正在尝试读取用户上传的文件并将其转换为字符串。我有 2 个函数可以做到这一点。
handleFileInput
handleFileInput(event){
setTimeOut(async()=>{
let abcd= await this.convertFileToString(this.file) //the file has been uloaded successFully at this point
console.log(abcd) //this prints the enitre fn given in the resolve method
},3000)
}
convertFileToString
convertFileToString(file){
return new Promise((resolve, reject)=>{
let fileReader = new FileReader();
fileReader.readAsText(file);
resolve(fileReader.onload = (event) =>{
this.XMLAsString=fileReader.result as String
})
})
}
当我在控制台中打印abcd 的值时,我得到了这个:
ƒ (event) {
_this.XMLAsString = fileReader.result;
}
我对@987654325@ 和Promises 的概念相当陌生,并且明白promise 是我唯一可以等待的异步事物。我希望将上传文件的值(转换为字符串)存储在变量abcd 中。我如何获得价值?或者如果我必须返回一个承诺,那么我如何访问读取为字符串的文件的值并存储在abcd中?
【问题讨论】:
标签: javascript typescript promise async-await