在我的应用程序中,我必须在嵌套循环中发送HTTP请求,如下所示:
for(let i=1;i<Names.length;i++) {
for(let k=1;k<Data.lenght;k++) {
let url = hostPath + "/"+Names[i] + "/" + Data[i];
this.http.get(url);
}
}
我已经按照以下方法完成了上述要求:
for(let i=1;i<Names.length;i++) {
Observable.from(Data).ConcatMap((data) => {
let url = hostPath + "/" + Names[i] + "/" + data;
this.http.get(url);
}).subscribe(() => {})
}
我想就Names
数组(外循环)保持适当的顺序,但可以发送对Data
数组的并行请求(内循环)。我对Angle非常陌生,还有其他方法可以做到吗?
您可以这样做,一个小问题是您需要使用处理空数组defaultIfEmpty
。以下代码也可以处理该问题:
let allData$ = Names.map(name => Observable.forkJoin(
Data.map(d => {
const url = hostPath + '/' + name + '/' + d;
return this.http.get(url);
})).defaultIfEmpty([]);
);
Observable.forkJoin(allData$).defaultIfEmpty([]).subscribe();
// You will get data in same order here
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句