Angular 2 : Cancel Http requests that are in a loop

标签 angular rxjs observable angular2-http angular2-observables

我有一系列 Http 调用,这些调用是通过循环访问小工具进行的。有没有办法中止所有请求

      for (let gadget of gadgets) {
               this.userService.getGadgetsData(gadget.Id, gadget.Name).subscribe(gadgetsData => {   
    });
}

我的服务代码在component.service.ts

@Injectable()
export class UserService {
    constructor(public _http: Http) { }
 getGadgetsData() {

        return this._http.get(this._dashboards, { headers: this.getHeaders() })
            .map((res: Response) => res.json());
    }

}

最佳答案

请看看这是不是你想要的。

observableList: [];

......

for (let gadget of gadgets) {
    let obs = this.userService.getGadgetsData(gadget.Id, gadget.Name).subscribe(gadgetsData => {
    });
    this.observableList.push(obs);
}

...
onClick() {
    for (let i = 0; i < this.observableList.length; i++) {
        this.observableList[i].unsubscribe();
    }
}

关于 Angular 2 : Cancel Http requests that are in a loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44166810/

相关文章:

javascript - 如何忽略用户未完成的更改?

httprequest - Http post并以角度6获取请求

angular - 使用自动完成如何过滤多个属性上的对象

javascript - rxjs 相当于使用 'return' 停止异步函数;

Angular 6刷新Observable,删除后从后端获取所有条目

html - 使用 Bootstrap 在 10 列网格中放置任意数量的元素

angular - 如何正确使用 RxJS 为返回到 Observable 的数组的每个对象添加一个新字段?

javascript - 根据Id替换Array中的数据

angular - 服务和 Controller 中的angular4错误处理

javascript - 限制用户在 ngModel 的 Angular 2 中输入最多 5 位整数,最多 2 位小数