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);  
})