相关疑难解决方法(0)

Angular ngOnInit中的异步/等待

我目前正在评估替换Angular的优点的利弊。RxJS” Observable与普通的Promise,这样我可以使用asyncawait并获得更直观的代码风格。

我们的典型场景之一:在中加载一些数据ngOnInit。使用Observables,我们可以:

ngOnInit () {
  this.service.getData().subscribe(data => {
    this.data = this.modifyMyData(data);
  });
}
Run Code Online (Sandbox Code Playgroud)

当我改为返回Promisefrom getData(),并使用async和时await,它变为:

async ngOnInit () {
  const data = await this.service.getData();
  this.data = this.modifyMyData(data);
}
Run Code Online (Sandbox Code Playgroud)

现在,很明显,Angular不会“知道”,而ngOnInit变成了async。我觉得这不是问题:我的应用仍然可以像以前一样工作。但是,当我查看OnInit接口时,显然并未以暗示可以声明该函数的方式声明该函数async

ngOnInit(): void;
Run Code Online (Sandbox Code Playgroud)

所以-底线:我在这里做什么合理吗?还是会遇到任何无法预料的问题?

asynchronous promise observable typescript angular

12
推荐指数
5
解决办法
2895
查看次数

标签 统计

angular ×1

asynchronous ×1

observable ×1

promise ×1

typescript ×1