私のangular2アプリケーションで複数のhttp呼び出しを行う必要があります。私は最初に1つの呼び出しを行い、応答を待ってから、次の呼び出しのURLを取得して、それ以降の呼び出しを行う必要があります。同様に、私の第3の呼び出しは、第2の呼び出しの応答に基づいています。 http呼び出しの応答が次の呼び出しにURLを持たないまで、この操作を実行する必要があります。ここで問題となるのは、私は何通の通話を行うかを知る方法がない(次の通話へのリンクがあれば、現在の応答のみに依存する)。また、私はすべての呼び出しからの応答を統合する必要があります。Angular2の以前の応答に基づいて複数のhttp呼び出しを行います。
ここに、各呼び出しの応答があります。
{
"data": {
"page": 5,
"pageSize": 500,
"totalSize": 3000,
"entries": [],
"nextPage": {
"href": "http://someurl?
requestParam=someValue&page=1&pageSize=500",
"rel": null
}
}
}
nextPage属性から値を抽出し、次の属性がnullの応答が得られるまでhttp呼び出しを行う必要があります。
{
"data": {
"page": 5,
"pageSize": 500,
"totalSize": 3000,
"entries": [],
"nextPage": null
}
}
ここでは、1回の呼び出しで使用するコードを示します。私はどのように これらの呼び出しをチェーンするか分からない。
private load(extraUrlParam?: any) {
let me = this;
let url = me.getUrl(type, extraUrlParam, null);
me.pHttp.get(url, this.getHttpOptions())
.map((response: Response) => response.json())
.subscribe(
data => {
console.log("data received");
me.data = this.preProcessData(data);
me.dataSubject.next(this.data);
},
error => {
this.dataSubject.error(error);
me.handleError(error, url, type);
});
}
ご意見をいただければ幸いです。
2番目、3番目など... urlを次のページのhrefに設定しますか? – mast3rd3mon
あなたは再帰を使うことができますが、必要なことはしませんし、(最初のものを除く)すべての呼び出しを並行して行うことができます:合計サイズ(3000)とページサイズ(500) 6ページが必要です。 –