2015-12-15 6 views
7

で同時に複数のHTTPリソースを取得:は、私は次のコードで<code>http.get</code>から、単一の観察可能な結果を​​処理することができますAngular2

http.get('/customers/1') 
     .map((res: Response) => res.json()) 
     .subscribe(customer => this.customer = customer); 

今、私は私がのためにリクエストを送信できるようにしたいvar list:number[] = [1, 4, 7];などのリソースIDのリストを持っていますすべてのリソースを割り当てて、解決済みのすべての項目をcustomers => this.customers = customersのように配列に割り当てます。

+1

チェック[forkJoin](https://でgithubの.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/forkjoin.md) –

+0

ありがとう@EricMartinez、これは解決しました。 –

答えて

9

Rx.Observable.forkJoinこれを行うことができます。

まず輸入Obserable & forkJoin:

import {Observable} from 'rxjs/Observable'; 
import 'rxjs/add/observable/forkJoin'; 

またはインポートすべての

import {Observable} from 'rxjs/Rx'; 

今すぐforkJoinとすべての観測に参加:

// a set of customer IDs was given to retrieve 
var ids:number[] = [1, 4, 7]; 

// map them into a array of observables and forkJoin 
Observable.forkJoin(
    ids.map(
     i => this.http.get('/customers/' + i) 
      .map(res => res.json()) 
    )) 
    .subscribe(customers => this.customers = customers); 
+0

すばらしい答え!ここでも詳しい説明がありますhttp://www.metaltoad.com/blog/angular-2-http-observables – Harry

関連する問題