/ / Pobieranie wielu zasobów HTTP jednocześnie w Angular2 - http, maszynopis, angular

Jednoczesne pobieranie wielu zasobów HTTP w Angular2 - http, maszynopis, kątowe

Potrafię obsłużyć pojedynczy możliwy do zaobserwowania wynik z http.get z następującym kodem:

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

Teraz mam listę identyfikatorów zasobów takich jak var list:number[] = [1, 4, 7]; że chcę być w stanie wysłać żądanie dotyczące wszystkich zasobów i przypisać wszystkie rozwiązane elementy do mojej tablicy, np customers => this.customers = customers.

Odpowiedzi:

9 dla odpowiedzi № 1

Rx.Observable.forkJoin może to zrobić.

Pierwszy import Obserable & forkJoin:

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

lub zaimportuj wszystko

import {Observable} from "rxjs/Rx";

Teraz połącz wszystkie obserwowalne z 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);