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 № 1Rx.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);