Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 使用Observable.merge时,永远不会调用HTTP请求_Angular_Observable_Angular2 Observables - Fatal编程技术网

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

Angular 使用Observable.merge时,永远不会调用HTTP请求,angular,observable,angular2-observables,Angular,Observable,Angular2 Observables,我正在尝试使用merge操作符循环http请求 服务: addData(data) { return this.http .post(this.url, data) .map(resp => { return resp; }); } 组件: addData(data) { if (data.length != 0) { let respObs: Observable<Re

我正在尝试使用
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);
            });
    }
}
addData(数据){
如果(data.length!=0){
let respObs:Observable[]=[];
data.forEach(元素=>{
respObs.push(this.addService.addData(元素));
});
可观察。合并(respObs)
.订阅(resp=>{
console.log(resp);//可观察对象不是正在记录响应对象。
},err=>{
控制台日志(err);
});
}
}
使用的版本:

addData(data) {
    return this.http
        .post(this.url, data)
        .map(resp => {
            return resp;
        });
}
角度:4.3.5
RxJS:5.1.0

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

对于,您需要将可观察对象作为逗号分隔的列表传递。试试这个:

Observable.merge(...respObs)
  .subscribe(resp => {
    console.log(resp); // Observable object not the Response object is getting logged.
  }, err => {
    console.log(err);
  });
对于,您需要以逗号分隔的列表形式传递观察值。试试这个:

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

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