Angular 从observable中获取字符串值
我有一个可观察的函数,所以我可以使用文件的内容Angular 从observable中获取字符串值,angular,rxjs,observable,Angular,Rxjs,Observable,我有一个可观察的函数,所以我可以使用文件的内容 readDocument(fileChangeEvent: Event) { return new Observable(obs=>{ const file = (fileChangeEvent.target as HTMLInputElement).files[0]; let fileReader = new FileReader(); fileReader.onload = (e
readDocument(fileChangeEvent: Event) {
return new Observable(obs=>{
const file = (fileChangeEvent.target as HTMLInputElement).files[0];
let fileReader = new FileReader();
fileReader.onload = (e) => {
obs.next(fileReader.result);
}
fileReader.readAsText(file);
})
}
我使用该函数以字符串形式获取csv文件的内容
this.readDocument(data).subscribe(documentvalue=>{
var teststring = documentvalue;
})
我的问题是,如果我尝试使用字符串(在我的示例中用于highcharts):
我发现以下错误:
类型“Subscription”不可分配给类型“string”
我如何从订阅/可观察到的内容中获取纯字符串值 我得到的错误是
类型“{}”不可分配给类型“string”
,这比您得到的错误更有意义
因为在可观察对象中没有类型信息,它默认认为可观察对象发出空对象{}
。无法将其分配给字符串self.chartOptions.data.csv
。要解决这个问题,您需要显式地为可观察对象提供一个类型参数,并确保它发出字符串。下面是修复以下问题的代码:
return new Observable<string>(obs=>{
const file = (fileChangeEvent.target as HTMLInputElement).files[0];
let fileReader = new FileReader();
fileReader.onload = (e) => {
obs.next(fileReader.result as string);
}
fileReader.readAsText(file);
})
返回新的可观察对象(obs=>{
常量文件=(fileChangeEvent.target作为HTMLInputElement)。文件[0];
让fileReader=newFileReader();
fileReader.onload=(e)=>{
obs.next(fileReader.result作为字符串);
}
readAsText(文件);
})
哪一行抛出错误?self.chartOptions.data.csv=documentvalue;第116行这里var teststring==documentvalue代码>键入两个=
我想?stackblitz代码段没有给出相同的错误
return new Observable<string>(obs=>{
const file = (fileChangeEvent.target as HTMLInputElement).files[0];
let fileReader = new FileReader();
fileReader.onload = (e) => {
obs.next(fileReader.result as string);
}
fileReader.readAsText(file);
})