循环调用Angular2服务

Has*_*san 1 typescript angular

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

这是我目前如何调用服务(无循环)的方法:

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

Has*_*san 6

好的,我找到了一种方法:

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)
);
Run Code Online (Sandbox Code Playgroud)

基本上,我对需要并行执行的服务进行了排列,然后将其传递给forkJoin。当所有可观察值都完成时,响应将传递到res订阅方法的参数中。