rxjs subscribe没有从angular2服务返回响应

时间:2017-03-23 12:26:00

标签: angular rxjs angular2-observables

我正在尝试使用从服务返回的数据来呈现表,但我正在使用的订阅回调无法将数据设置为组件范围,但是在我记录数据时它会显示。

我的服务方法有map和catch方法

generateReport(rate){
  return this.post(`/reports/owl/${this.deviceId}/electricity/tables`,this.query)
             .map(res => res.json())
             .catch((error:any) => Observable.throw(error.json().error  || { error: 'Server error' }) );
}

并在组件类

private generateReport(){
     this.dataService.generateReport(this.carbonRate)
                    .subscribe(data => {
                      this.rows = data.rows;
                      this.columns = data.columns;
                      this.showDownload = true;
                    },this.errorHandler);

    }

上面的代码会停止浏览器窗口中的所有内容,直到浏览器决定停止该过程。

但是如果在成功回调中做了console.log()

this.dataService.generateReport(this.carbonRate)
                    .subscribe(data => {
                      console.log(data);
                    },this.errorHandler);

屏幕没有冻结,我可以访问返回的数据。

0 个答案:

没有答案