我有一個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;
}
考慮使用'mergeDelayError'而不是'forkJoin'和'hackish''catch':它的好處是它不會將結果壓縮到一個數組中,並且當所有的請求都完成時,你將得到一個正確的'error '如果你有任何回撥的話。 – olivarra1