Typescript Rxjs将可观察到的API结果转换为服务函数中的另一个可观察结果
我有一个加载程序服务,其结果是Typescript Rxjs将可观察到的API结果转换为服务函数中的另一个可观察结果,typescript,rxjs,observable,transform,Typescript,Rxjs,Observable,Transform,我有一个加载程序服务,其结果是可观察的,其中包含一个CSV文件。每行表示(例如)Person对象的不同实体,逗号分隔的部分表示Person的属性,例如id、年龄、姓名等 加载器服务功能是: loadtTextFile(path: string): Observable<string> loadAllPerson(): Observable<Array<Person>> map操作员是您的朋友。试着这样做: loadAllPerson(): Observ
可观察的
,其中包含一个CSV文件。每行表示(例如)Person对象的不同实体,逗号分隔的部分表示Person的属性,例如id、年龄、姓名等
加载器服务功能是:
loadtTextFile(path: string): Observable<string>
loadAllPerson(): Observable<Array<Person>>
map
操作员是您的朋友。试着这样做:
loadAllPerson(): Observable<Person[]> {
return loadTextFile(PATH).pipe(
map((csv: string) =>
csv.split('\n')
.map((rows: string[]) => rows.map((row: string) => row.split(',')))
.map((table: string[][]) =>
table.filter((cols: string[]) => !Number.isNaN(+cols[0]) && !Number.isNaN(+cols[3]))
.map((cols: string[]) => new Person(+cols[0], cols[1], cols[2], +cols[3], cols[4], cols[5], cols[6], cols[7], new Date(cols[8])))
)
)),
);
}
loadAllPerson():可观察{
返回loadTextFile(PATH).pipe(
映射((csv:string)=>
csv.split(“\n”)
.map((rows:string[])=>rows.map((row:string)=>row.split(','))
.map((表:字符串[]])=>
table.filter((cols:string[])=>!Number.isNaN(+cols[0])&&!Number.isNaN(+cols[3]))
.map((cols:string[])=>新人物(+cols[0],cols[1],cols[2],+cols[3],cols[4],cols[5],cols[6],cols[7],新日期(cols[8]))
)
)),
);
}
这不起作用怎么办?
loadAllPerson(): Observable<Person[]> {
return loadTextFile(PATH).pipe(
map((csv: string) =>
csv.split('\n')
.map((rows: string[]) => rows.map((row: string) => row.split(',')))
.map((table: string[][]) =>
table.filter((cols: string[]) => !Number.isNaN(+cols[0]) && !Number.isNaN(+cols[3]))
.map((cols: string[]) => new Person(+cols[0], cols[1], cols[2], +cols[3], cols[4], cols[5], cols[6], cols[7], new Date(cols[8])))
)
)),
);
}