【问题标题】:Calling Angular2 service in a loop循环调用Angular2服务
【发布时间】:2016-11-03 17:01:04
【问题描述】:

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

这是我当前调用服务的方式(无循环):

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

【问题讨论】:

  • 请添加您的html
  • @PatrickJane 此方案没有 HTML。只是数组中的一堆ids,我需要循环并在其中调用此服务方法。
  • 复选框在哪里
  • 它们是另一个组件的一部分。我只是将检查的 ids 以数组的形式传递给我。

标签: angular typescript


【解决方案1】:

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

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。当所有的 observables 都完成后,响应被传递到 subscribe 方法的 res 参数中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 2017-04-01
    • 2019-06-14
    • 2019-09-29
    • 2017-01-21
    • 1970-01-01
    相关资源
    最近更新 更多