我正在尝试使用从服务返回的数据来呈现表,但我正在使用的订阅回调无法将数据设置为组件范围,但是在我记录数据时它会显示。
我的服务方法有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);
屏幕没有冻结,我可以访问返回的数据。