【发布时间】:2018-01-15 18:03:24
【问题描述】:
我对@987654321@ 参数有疑问,就我而言,我有一个具有consult() 功能和参数响应的consultService。在使用参数响应之前调用sendConsultRequest() 函数。 sendConsultRequest 工作得很好,因为我可以在页面中看到结果,但是当我想使用参数响应导出内容时,我遇到了问题:
ERROR TypeError: Cannot read property 'dataList' of undefined
在我的选择中,响应参数在导出操作之前已经初始化,因为consultPage 工作得很好。 这是服务代码,你能告诉我为什么它不起作用吗?
@Injectable()
export class ConsultService {
private url = 'api/consultApplication';
response: Application;
sendConsultRequest(id: string) {
console.log('sendConsultRequest');
this.http.get<Application[]>(this.url)
.subscribe(response => {
response.map(res => {
this.response = res;
this.updateApplication(res);
}),
pipe(catchError(this.handleError('sendConsultRequest', [])));
});
}
这里是导出页面ts:
ngOnInit() {
console.log('ExportComponent init');
console.log(this.consultService.response);
this.application = this.consultService.response;
this.appID= this.consultService.response.dataList.find(pair => 'PROCEDURE' === pair.field)
? this.consultService.response.dataList.find(pair => 'PROCEDURE' === pair.field).value : null;
}
谢谢。
【问题讨论】:
-
但是等等...如果您发送异步请求,您希望如何立即获得响应?
-
我不想马上得到响应,其实我有2个步骤,第1步:consult,会调用函数request并初始化属性Response,然后第2步,导出,这将使用属性响应。第一步总是好的,我认为属性 Response 应该被初始化,但是没有。
标签: angular typescript observable