Angular 2(4)管理多个异步调用响应的方法是什么

Angular 2(4)管理多个异步调用响应的方法是什么,angular,typescript,asynchronous,loopback,angular-loopback,Angular,Typescript,Asynchronous,Loopback,Angular Loopback,我有一个简单的问题,如何管理同步异步调用的响应 解释:我有一个带有typescript的数组json循环,我在每次迭代中调用一个环回Api: for (var i = 0; i < data.length; ++i) { this.dataApi.patchOrCreate(data[i]).subscribe((resp: any)=> { console.log(resp); }, (err: any)=>{ console.

我有一个简单的问题,如何管理同步异步调用的响应

解释:我有一个带有typescript的数组json循环,我在每次迭代中调用一个环回Api:

for (var i = 0; i < data.length; ++i) {
    this.dataApi.patchOrCreate(data[i]).subscribe((resp: any)=> {
        console.log(resp);
    }, (err: any)=>{
        console.log('ERR',err);
    });
}

谢谢。

您可以创建一个数组字段,然后在循环时推送观察值。然后在forkJoin中使用此字段

Observable.forkJoin(
    this.dataApi.patchOrCreate(data[0]),
    this.dataApi.patchOrCreate(data[1]),
    this.dataApi.patchOrCreate(data[2]),
).subscribe(result => {
    //Close modal
    console.log('response',result[0],result[1]);
});
myObservables = [];

constructor(...)
...

for (var i = 0; i < data.length; ++i) {
    this.myObservables.push(this.dataApi.patchOrCreate(data[i]));
}
...
Observable.forkJoin(
    this.myObservables
).subscribe(result => {
    //Close modal
    console.log('response',result[0],result[1]);
});