web-dev-qa-db-fra.com

q.tout pour les observables angular2

y a-t-il quelque chose comme q.all pour résoudre toutes les demandes d'api http dans angular2?

Dans angular1, je peux faire quelque chose comme ceci:

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

En angular2, le module http renvoie Observable,

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

Mais je veux résoudre A et B ensemble, puis faire quelque chose.

23
kdu

Vous aurez besoin du .forkJoin opérateur pour cela

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

Vous pouvez importer le Observable avec;

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

Angulaire <6:

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

Angulaire> = 6:

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