()

2016-04-07 2 views
1

SO私はforkJoin、Promise.allの基本的交換を愛し、私はのようにそれを動的リストを養うためにどのように理解することはできません。()

Observable.forkJoin(
     this.http.get('/app/books.json').map((res:Response) => res.json()), 
     this.http.get('/app/movies.json').map((res:Response) => res.json()) 
    ).subscribe(
     data => { 
     this.books = data[0] 
     this.movies = data[1] 
     }, 
     err => console.error(err) 
    ); 

実行時にhttp.getsを作成する必要がある(URLは異なりますが、宛先と総URLはすべて生成されます)、設定オブジェクトを渡そうとしましたが、気に入らなかった

読み取り用tx、

Sean。最後の要素を収集する観測配列または約束の配列または引数:|

答えて

2

forkJoin

引数(配列引数)として最初の引数を取ります。

このように、観測値の配列を渡すことができます。 Here is a plunker

let observables = [ 
    this.http.get('/app/books.json').map((res:Response) => res.json()), 
    this.http.get('/app/movies.json').map((res:Response) => res.json()) 
]; 

Observable.forkJoin(observables).subscribe(
    data => { 
     this.books = data[0] 
     this.movies = data[1] 
    }, 
    err => console.error(err) 
); 
+0

TX SO MUCH !!!!!感謝します!!!! – born2net

+0

問題と思われる1つのことは、ネットワークに失敗した理由が間違っているということではありません...だから、エラーは200回、OK応答と失敗した呼び出しに関する情報はありません。失敗したコールの詳細を表示しますか? tx – born2net

+0

@ born2netサーバーからの実際の応答本文が必要な場合。 'error._body'からテキストとして取得できます。実際のエラーは[応答オブジェクト](https://angular.io/docs/ts/latest/api/http/Response-class.html)です。プロパティーは 'error.status'と' error.statusText'です。 'status'はステータスコードであり、' statusText'は[rfc2616](https://tools.ietf.org/html/rfc2616#section-6.1.1)のようなステータスコードのテキスト記述です。しかし、 'statusText'はまだ適切に実装されていません。 – Abdulrahman