APIは複数のアイテムのリクエストをサポートしていないため、複数回行う必要があるAPI呼び出しがあります。私がこれまでに書いたことは、サーバーにGETリクエストを送信する無限ループに終わってしまいます。私は以下の例でObservablesの性質を理解していないと信じています。私の前提は、whileループの各呼び出しが新しい単一のオブジェクトにサブスクライブし、解決されると配列に配置されるということです。私が望むものを達成するために、以下のコードを変更するにはどうすればよいですか?複数の非同期HTTP GETリクエストを送信
getSingle(): Observable<Single> {
return this.http.get(this.url, this.options)
.map((r: Response) => r.json().data as Single);
}
getMultiple(num: number): Single[] {
let multiple: Single[] = [];
let i = 0;
while (i < num) {
this.getSingle().subscribe(single => {
multiple.push(single);
console.log('Success');
i++;
}, err => {
console.log('Failure');
});
}
return multiple;
}
「hackish」の「catch」で 'forkJoin'の代わりに' mergeDelayError'を使用することを検討してください:結果が配列に収縮されず、すべてのリクエストが完了したら適切な 'エラー'あなたが持っていた場合のコールバック。 – olivarra1