如何解决角度异步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);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。