RxJs、Typescript 1.8、Angular2。RxJs:シーケンスの各値を別々に出力する
私はObservableを返す関数を持っています。 Observableは一連のオブジェクトを返すWeb APIを呼び出します。ここに私の実際のコードは次のとおりです。
getClients(): Observable<IClient[]> {
return this.backendService.get(`tracker/clients`)
.map((resp: {}[]) => { return _.map(resp, createClientFromJson)})
.map((clients: IClient[]) => {
this.logger.debug(`Created ${clients.length} Clients from reply`);
return clients;
});
}
backendService.get()
への呼び出しは、最終的にObservable
を返す、http.get()
を呼び出します。
観察可能からイベントを消費し、私のコード:
loadClients() {
this.getClients().subscribe((clients: IClient[]): void => {
this.clients = this.clients.concat(clients);
this.logger.debug(`Got ${clients.length} clients, now have ${this.clients.length}.`);
})
}
このすべての作品。しかし、私のObservableはN要素のシーケンスで1回だけを出力します。 Web APIが20個のアイテムのシーケンスを返す場合、には1つのイベントだけが送出されます。
シーケンス全体を一気に放出する代わりに、シーケンス内の各アイテムが単独で放出されるようにするにはどうすればよいですか?
プログラムの一部では、シーケンス全体が必要です。他には、いくつかの基準に合致する特定の要素を探す必要があります。
を試してみてください?私はこれらの行に沿って何かを試したので尋ねますが、観察可能な観察可能な結果となりました。これは対処が困難でした。 –
ちょうど 'flatMap(clients => clients)' –
'Observable.from(...)ではなく' flatMap(clients => clients) 'に行きました。 –