使用 Observable.merge 时永远不会调用 HTTP 请求

When using Observable.merge HTTP requests are never getting called

我正在尝试使用 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);
            });
    }
}

使用的版本:

Angular: 4.3.5
RxJS:5.1.0

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

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

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