2016-02-21 25 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))