在循环中调用Angular2服务

时间:2016-11-03 17:01:05

标签: angular typescript

我写了一个服务,将一些数据发送到API请求。但是,我需要多次调用它,具体取决于用户单击的复选框数量。做这个的最好方式是什么?我正在研究Observables forkJoin方法,但我不确定如何实现它。

以下是我目前如何调用该服务(没有循环):

this.myService.update(id, data).subscribe(
    data => { 
        console.log('Data: ', data);
    },
    error => { console.log('Error: ', error }
);

1 个答案:

答案 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参数中。