angular - 循环调用 Angular2 服务

标签 angular typescript

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

这是我目前调用服务的方式(没有循环):

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

最佳答案

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

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

关于angular - 循环调用 Angular2 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40407298/

相关文章:

angular - node_modules/xterm/typings/xterm.d.ts(10,1) : error TS1084: Invalid 'reference' directive syntax 中出现错误

angular - 订阅时不触发 rxjs pipeline tap/map

html - 如何显示具有 Angular 功能的HTML?

javascript - Angular 2注入(inject)全局依赖

angular - Websocket 在 localhost 但不是 Heroku 上工作

javascript - 当promise解析时如何重新渲染React组件? |如何阻止渲染直到数据加载?

带有子项的 ReactJS TypeScript 纯组件

javascript - 从多个组件更新服务数据 - Observable subscribe

angular - 将 angular2 组件名称/"this"转换为字符串

css - 更改 Angular 上垫平按钮的边框半径