angular - 订阅 Observer 然后将响应输出到控制台返回 undefined
问题描述
当我订阅 Angular 组件中的服务提供的 API 端点时,我无法从我的 typescript 代码中的 observable 访问这些值,但是我可以在 HTML 中看到它们。
角色服务.ts
getAllRoles() {
return this.http.get<Role[]>(`${environment.privateApiUrl}/Role/Get`);
}
应用程序组件.component.ts
roles: Role[];
ngOnInit(): void {
this.roleService.getAllRoles().subscribe(data => {
this.roles = data
})
console.log(this.roles) <-- Returns undefined
}
但是,如果我在我的 HTML 中调用角色,我可以看到所有的值。如果我在订阅中调用 console.log,我可以看到这些值。
订阅后如何在 Typescript 中访问该对象?
谢谢
解决方案
调用console.log
里面的订阅者函数。
roles: Role[];
ngOnInit(): void {
this.roleService.getAllRoles().subscribe(data => {
this.roles = data
console.log(this.roles);
});
}
推荐阅读
- groovy - JMeter jp@gc-WebDriver Sampler — 从 MS Excel 电子表格运行网页
- actionscript-3 - 在AS3中,我可以使2个以上的输入文本字段的文本相同吗?
- python - 不同起始条件下的时间序列预测
- python - 我无法使用 pysimplegui 将图像下方的元素向上移动
- elasticsearch - 在 ElasticSearch 中存储时间相关数据
- jquery - jquery文件上传,1.9MB图片文件太大?
- amazon-web-services - AWS s3 通过 CORS 或接入点提供访问?403禁止错误
- c++ - 指向链表中指针的指针在每次调用主函数后都不能保留指针。为什么?
- mysql - MariaDB:我的存储过程没有返回任何行
- python - 如何设置“/*”路径以捕获 FastAPI 中的所有路由?