【发布时间】:2018-02-14 20:39:55
【问题描述】:
如何在管道方法中提取 observable 的结果?我有以下内容:
// type of "observables" is Observable<Observable<MyType>[]>
const observables = this.http.get<MyTypeList>(rootUrl).pipe(
map(list => list[locale]),
map(urlList => urlList.map(url => this.http.get<MyType>(url))),
// I need some method here to make Observable<MyType>[] from Observable<Observable<MyType>[]>
);
forkJoin(observables).subscribe(/* I have all my items here*/)
在第二次map 调用之后,我需要一些方法来从Observable<Observable<MyType>[]> 生成Observable<MyType>[] 有没有一种优雅的方法可以做到这一点?
【问题讨论】:
-
如果将第二个 map() 替换为 mergeMap() 会怎样?
-
它删除了数组而不是外部可观察对象:
Observable<Observable<MyType>> -
在第二个
map之后添加concatAll()、mergeAll()、concatMap(a => a)或mergeMap(a => a)。 -
这将导致
Observable<MyType>,但我需要Observable<MyType>[]。 -
你想要 Observables 数组?
标签: angular typescript rxjs