angular2 rxjs observable forkjoin angular2 rxjs observable forkjoin typescript typescript

angular2 rxjs observable forkjoin


You could leverage the catch operator for each observable to intercept the error and return another observable in such cases.

Here is a sample:

return Observable.forkJoin(  this.http.get('/some-url')         .map((res:Response) => res.json())         .catch(res:Response => Observable.of({}),  this.http.get('/some-other-url')         .map((res:Response) => res.json())         .catch(res:Response => Observable.of({}),);


Uses Observable.forkJoin() to run multiple concurrent http.get() requests. The entire operation will result in an error state if any single request fails.

 getBooksAndMovies() {    return Observable.forkJoin(      this.http.get('/app/books.json').map((res:Response) => res.json()),      this.http.get('/app/movies.json').map((res:Response) => res.json())    );

But you could put your additional GET request in the error handler:

getBooksAndMovies() {    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)    );