属性 'subscribe' 在类型 'Promise<Observable<Object>>' angular 服务调用上不存在

Property 'subscribe' does not exist on type 'Promise<Observable<Object>>' angular service call

尝试在 Angular 中为组件初始化时进行服务调用,我从中获取数据的服务器需要一些响应,因此我尝试使用 promises 来分配返回的数据在我的组件中 this.stats

当尝试编写函数时,我得到 -> 属性 'subscribe' does not exist on type 'Promise<Observable>' on my 'subscribe' (在我的组件中)我已经尝试通过多种方式重写该函数,但无法更改错误,我可能只是在根本上做错了,但是在这里找不到与我的确切情况相匹配的任何东西,所以我想我会寻求任何可能的解释....也许我需要更改某些类型转换?

组件

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`)
   
  }

您不应该将 promises 与 observables 混在一起。 Angular 带有使用 Observable 设计模式的 RxJs,你一定要坚持它并避免使用 async/await。

服务:

getStats():Observable<Object>{
   return this.http.get(`http://localhost:8888/fetchStats`)
}

组件:

export class StatsComponent {
  @Output() onUpdateStats: EventEmitter<Object> = new EventEmitter();
  stats: Observable<Object>;

  constructor(private specsService: SpecsService) {
      this.stats = this.specsService.getStats();
  }

  updateStats(){
    console.log(this.stats)
    this.onUpdateStats.emit()
  }

}