エンティティの詳細を取得する必要があります。私も著者と出版社のデータを取得するよう ブックオブジェクトは、この角度で観測可能なものを連結する
{
title: XYZ,
published: XYZ
author: URL_TO_ENDPOINT
publisher: URL_TO_ENDPOINT
}
のようになります。今、私はチェーン約束する必要があります。私はgetResourceByURLメソッドを実装し、簡単なApiServiceを持っている、と私は、これは私がまさに私のオブジェクトを知っている限り、簡単です 私ApiServiceとチェーンpromicesを呼び出し、新しいサービスDetailsServiceを作成:
return this.apiService.getResourceByURL(book.url).flatMap((entity) => {
return Observable.forkJoin(
Observable.of(entity),
this.apiService.getResourceByURL(entity.author)
this.apiService.getResourceByURL(entity.publisher)
).map(entityFullDetails => {
let entity = entityFullDetails[0];
let author = entityFullDetails[1];
let publisher = entityFullDetails[2];
entity.author = author;
entity.publisher = publisher;
return entity;
});
});
問題は、私が使用していたということですAuthor/Publishersの詳細を取得できるようにするために、DetailsServiceの同じメソッドを使用します。つまり、エンティティオブジェクトのすべてのキーを反復処理し、そのキーの値がURLであればapiService.getResourceByURLを呼び出す必要があります)。
簡単にできますか?または抽象度を下げて、BookDetail、AuthorDetailなどを取得するための別のメソッドを用意する必要があります。
私は1つのレベルのネストだけに興味があります。私はこの本の著者をフェッチする場合、私は、私は罰金あなただけの必要を行う関数を書くことができます
あなただけの観測で作業しているとき、なぜあなたは約束を話していますか? –
[Angular 2 - Chaining http要求]の重複している可能性があります(https://stackoverflow.com/questions/42626536/angular-2-chaining-http-requests) –
@ Jota.Toledo重複して私を攻撃しません。少なくともその質問にはならない。ここでのOPは、要求を連鎖させる方法を知っています。返されるリソースの構造を知らなくても、プロセスを自動化することだけです。 –