【发布时间】:2017-11-11 19:50:25
【问题描述】:
我需要请求通过它们的 id 加载多部电影。每个请求都返回一个单独的 Observable。我有以下代码:
getMoviesDataByImdbIds(ids: number[]):Observable<IMovie[]> {
return Observable.zip(ids.map( id => {
let params = new HttpParams().set('i', this.getIMDBIdString(id)).set('apikey', API_KEY);
return this.http.get(API_URL, {params}).map( data => {
return this.extractMovieData(data);
})
}));
}
由于可能有很多 id,整个操作需要相当长的时间。并且只有在所有请求完成后才会返回结果。
是否可以让 output Observable 在每次新请求完成时发出数组?像这样:
1 完整 -> [{movie1}]
2 完整 -> [{movie1}, {movie2}]
3 完整 -> [{movie1}, {movie2}, {movie3}],
等等
【问题讨论】:
标签: angular rxjs observable