我写了一个服务,将一些数据发送到API请求。但是,我需要多次调用它,具体取决于用户单击的复选框数量。做这个的最好方式是什么?我正在研究Observables forkJoin
方法,但我不确定如何实现它。
以下是我目前如何调用该服务(没有循环):
this.myService.update(id, data).subscribe(
data => {
console.log('Data: ', data);
},
error => { console.log('Error: ', error }
);
答案 0 :(得分:4)
好的,我找到了办法:
let observables = new Array();
for( let id of ids ) {
observables.push(this.myService.update(id, data));
}
Observable.forkJoin(observables).subscribe(
res => console.log(res),
error => console.log('Error: ', error)
);
基本上我创建了一个我需要并行执行的服务数组,然后将其传递给forkJoin
。当所有可观察对象都完成后,响应将被传递到subscribe方法的res
参数中。