【发布时间】:2021-10-07 22:11:36
【问题描述】:
尝试在 Angular 中为组件进行初始化时的服务调用,我从中获取数据的服务器需要一些时间来响应,因此我尝试使用承诺将返回的数据分配给我的 this.stats组件
在尝试编写函数时,我得到 -> 我的“订阅”(在我的组件中)的“Promise
组件
export class StatsComponent implements OnInit {
@Input() stats: any
@Output() onUpdateStats: EventEmitter<Object> = new EventEmitter()
constructor(private specsService: SpecsService) { }
async ngOnInit(): Promise<void> {
await this.specsService.getStats().subscribe((response) => {this.stats=response});
}
updateStats(){
console.log(this.stats)
this.onUpdateStats.emit()
}
}
services.ts
async getStats():Promise<Observable<Object>>{
return await this.http.get(`http://localhost:8888/fetchStats`)
}
【问题讨论】:
-
您必须等待才能获得 observable then 订阅,但是为什么要混合 observables 和 promises 这样呢?只需返回可观察对象。
-
根据您发布的内容很难 100% 清楚,但我认为
getStats应该只是:return this.http.get('http://localhost:8888/fetchStats');
标签: angular async-await subscribe