2016-02-21 85 views
3

我有API返回的照片列表对象,这是我想用订阅()来遍历..不是一次,而是逐一 ..Angular2 RxJs地图HTTP响应

http.get('photos.json') 
     .map(res => res.json()); 

哪我可以使用函数(地图,平面地图...)将响应转换为多个数组,因此使用订阅时,它将一个接一个地迭代..而不是所有的响应。

JSON example file

+0

你要遍历图像,对不对? – acdcjunior

+0

是的,但不是通过将完整图像传递给角度,而是使它们可以变形。所以我们可以在迭代它们之前应用更多的过滤器。 – Basit

+1

你已经有了答案。您只需从'rxjs/add/operator/mergeMap'中导入它(flatMap是mergeMap的别名),请参阅https://github.com/ReactiveX/RxJS/blob/master/src/add/operator/mergeMap。 TS –

回答

2

Flatmap将做到这一点,如果你创建了一个可观察出结果数组。

yourPhotosArray.flatMap(photos => Observable.from(photos))

将您的照片数组转换成可观察

2

您可以使用flatMap

http.get('photos.json') 
    .map(res => res.json()) 
    .flatMap((array, index) => array) 
    .filter(photo => 600 <= photo.height) 
    .subscribe(photo => console.log(photo))