我对typescript非常陌生,并且一直在努力解决一个看似愚蠢的问题:
我从服务中检索“代理”对象。
this.agentsController.getAgent(matricule).subscribe({
next: agent => {
console.log(agent)
console.log(agent.emailPro)
},
error: (error: string) => {
console.log(error)
}
});
根据第一个console.log,它的填充情况良好:
{
"agent": {
"matricule": "000001",
"nom": "DummyName",
"prenom": "DummyFirstname",
"emailPro": "dummy@dummy.fr",
"adresse1": "dummy address",
"telephonePerso": "0000000001"
}
}
但是,正如代理的打印显示了一个定义良好的电子邮件地址(emailpro)一样,第二个console.log始终显示 undefined
这怎么可能?我错过了什么?
1条答案
按热度按时间0yycz8jy1#
要将评论链总结为有效回复,请执行以下操作:
我的服务将适当的代理对象封装在另一个虚拟对象中,该虚拟对象恰好也被称为“代理”。这就是混乱!
因此,与其打电话
agent.EmailPro
我应该打电话的agent.agent.EmailPro
.我选择修复我的服务,以便它更好地解析api响应:
从…起
this.httpClient.get('apiUrl').pipe(map((result:any) => result as Agent));
到this.httpClient.get('apiUrl').pipe(map((result:any) => result.agent as Agent));
再次感谢@pietro909&@t.j.crowder