最初のajax呼び出しの結果が次のajax呼び出しのセットで使用されるAngular 2アプリケーションで2つの連続したhttpリクエストを作成したいとします。私はそれをどのように構造化するかを理解するために苦労しています。Angular 2 AppでRxJSを使用して連続したajaxリクエストを作成する方法
このアレンジの目的は、後続のajax呼び出しが、最初の呼び出しで取得されたオブジェクトのセットに詳細(新しいプロパティ)を追加する目的でデータを取得することです。
私はこれが1 + Nの問題のAjaxバージョンだが、私はデザインを制限していることを理解している。
以下の疑似コードは、必要と思われる行に沿った(機能本体)ですが、おそらくクリーナーの方法があります。
let finalObservable = Observable.create<viewModel>();
var firstAjax = this._http.request(url1, options)
.map((rs)=>rs.json());
firstAjax.subscribe((d)=>{
// d is an array of plain js objects
let secondAjax: Observable<any>[];
d.each((item, index)=>{
// roll item properties and index into url2s query string
secondAjax.push(_http.request(url2, options);
});
// assumption is I can pass an array of observables into forkJoin
Observable.forkJoin(secondAjax)
.subscribe((allRs)=>{
allRs.each((rs, index)=>{
d[index].newProperty = rs.text()
});
// give a value to the final observable
finalObservable.publish(d);
});
});
// Observable does not have a value yet, but will get one when the code
// above runs.
return finalObservable;
".publish"についてはわかりません。私はそれが何であるかを知った後、観測可能な値を与えようとしています。それは、観測値を作成したときよりも後であります。