web-dev-qa-db-ja.com

q.all angular2オブザーバブル

angular2のすべてのhttp apiリクエストを解決するq.allのようなものはありますか?

Angular1では、私はこのようなことをすることができます:

var promises = [api.getA(),api.getB()];
$q.all(promises).then(function(response){
    // response[0]  --> A
    // response[1]  --> B
})

Angular2では、httpモジュールはObservableを返し、

api.getA().subscribe(A => {A})
api.getB().subscribe(B => {B})

しかし、私はAとBを一緒に解決してから、何かをしたいと思っています。

23
kdu

そのためには.forkJoin演算子が必要になります

Observable.forkJoin([observable1,observable2])
       .subscribe((response) => {
          console.log(response[0], response[1]);
       });

Observableをインポートできます。

import {Observable} from 'rxjs/Rx';
33
eko

角度<6:

import {Observable} from 'rxjs/Observable';
    ...
    return Observable.forkJoin(
        this.http.get('someurl'),
        this.http.get('someotherurl'));

角度> = 6:

import {forkJoin} from 'rxjs';
...
return forkJoin(
    this.http.get('someurl'),
    this.http.get('someotherurl'));
0
Andris