簡體   English   中英

Angular 異步 OnInit

[英]Angular async OnInit

我對 angular 真的很陌生,想了解如何在 Oninit 上調用異步。 我有一項使用 asyn/await 的服務。 我希望能夠在 OnInit 中使用它。 但是,我無法使用它。 因為在服務調用完成之前,代碼會執行到下一行並引發 ZoneawarePromise 錯誤。

我的服務方法如下所示

 public async getProjects():Promise<Observable<any>>{
    const querySpec = {query: "SELECT * from c"};
    const { resources:items } = await this.container.items.query(querySpec).fetchAll();
    return of(items);
  }

這就是我試圖在 ngOnInit 中調用它的方式

async ngOnInit(){
      (await this.projectData.getProjects()).subscribe(data=>{
   
       //All the other code goes here, basically creating a HTML content

調用服務的正確方法是什么?

你的問題是Promise of Observable

 public async getProjects():Promise<Array<any>>{
    const querySpec = {query: "SELECT * from c"};
    const { resources:items } = await this.container.items.query(querySpec).fetchAll();
    return items;
  }

然后

async ngOnInit(){
      const data = await this.projectData.getProjects();
      console.log('data',data);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM