【问题标题】:When using Observable.merge HTTP requests are never getting called使用 Observable.merge 时,永远不会调用 HTTP 请求
【发布时间】:2018-11-06 20:21:03
【问题描述】:

我正在尝试使用 merge 运算符循环 http 请求。

服务:

addData(data) {
    return this.http
        .post(this.url, data)
        .map(resp => {
            return resp;
        });
}

组件:

    addData(data) {
    if (data.length != 0) {
        let respObs: Observable<Response>[] = [];
        data.forEach(element => {
            respObs.push(this.addService.addData(element));
        });
        Observable.merge(respObs)
            .subscribe(resp => {
                console.log(resp); // Observable object not the Response object is getting logged.
            }, err => {
                console.log(err);
            });
    }
}

使用的版本:

角度:4.3.5
RxJS:5.1.0

当检查网络控制台时,我看到从未进行过 http 调用,并且记录了 Observable 对象,而不是来自 http 调用的响应。

【问题讨论】:

  • 请同时提及您正在使用的 Angular 和 Rxjs 的版本。
  • 添加了我正在使用的版本

标签: angular observable angular2-observables


【解决方案1】:

对于Rxjs 5,您需要将 Observables 作为逗号分隔的列表传递。试试这个:

Observable.merge(...respObs)
  .subscribe(resp => {
    console.log(resp); // Observable object not the Response object is getting logged.
  }, err => {
    console.log(err);
  });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 2021-04-15
    • 2014-11-01
    相关资源
    最近更新 更多