Angular2:使用承诺检索FileReader结果
在我看来,有一个与控制器的一个功能链接的输入文件Angular2:使用承诺检索FileReader结果,angular,typescript,promise,settimeout,filereader,Angular,Typescript,Promise,Settimeout,Filereader,在我看来,有一个与控制器的一个功能链接的输入文件 <input type="file" style="display: none;" (change)="importXML($event)"> 在服务函数中,XML文件在文件读取器中读取,然后转换 在文件读取器的onloadend部分创建xml convertXML2Json(event): any { const file = event.files[0]; const fr = new FileReader();
<input type="file" style="display: none;" (change)="importXML($event)">
在服务函数中,XML文件在文件读取器中读取,然后转换
在文件读取器的onloadend部分创建xml
convertXML2Json(event): any {
const file = event.files[0];
const fr = new FileReader();
fr.onloadend = e => xmltoJsonFunction(fr.result);
fr.readAsText(file)
}
如何在onloadend中检索转换后的json结果,以便在Angular控制器中使用它,特别是在承诺的情况下?或者我应该使用setTimeout吗 您的结果不在
fr
对象内。回调函数中的参数e
具有读取文件的结果:
fr.onloadevent=e=>xmltoJsonFunction(e)代码>您的结果不在fr
对象内。回调函数中的参数e
具有读取文件的结果:
fr.onloadevent=e=>xmltoJsonFunction(e)编码>事实上,如果我只在控制器部分编码,我找到了一个修复方法:
public XMLParsed;
importXML(event): void {
const file = event.target.files[0];
const fr = new FileReader();
fr.onloadend = (e: any) => {
this.XMLParsed = xmlToJSON(e.target.result);
};
fr.readAsText(file);
实际上,如果我只在控制器部分编码,我找到了一个修复方法:
public XMLParsed;
importXML(event): void {
const file = event.target.files[0];
const fr = new FileReader();
fr.onloadend = (e: any) => {
this.XMLParsed = xmlToJSON(e.target.result);
};
fr.readAsText(file);