使生命周期钩子在打字稿(Angular,Ionic)中异步

时间:2018-08-10 07:53:26

标签: angular typescript ionic-framework async-await lifecycle

我很好奇使用带有生命周期挂钩的ascript / await打字稿功能。

该功能确实很方便,但是可以使生命周期挂钩异步吗?

我已经对该方法进行了多次测试,并且可以按预期工作,但我找不到任何可靠的答案,这是否是一种好的做法,恐怕可能不是。

用于说明:

角度:

async ngOnInit() {
  await someAsyncFunction();
}

离子:

async ionViewWillEnter() {
  await someAsyncFunction();
}

2 个答案:

答案 0 :(得分:1)

我不知道“相对较新的”-从2.1开始就出现了。

  

此功能确实很方便,但可以延长生命周期   钩异步?

有几篇文章正在做您正在做的事情(只是google async await ngOnInit)。没有任何建议表明用角做不是很好。不了解离子。

  

但是我找不到任何可靠的答案,这是好的做法,我   担心事实并非如此。

良好做法的问题在于他们自以为是。就我个人而言,我认为它使代码更具可读性。您可以查看https://medium.com/@benlesh/async-await-it-s-good-and-bad-15cf121ade40来查看其他意见和更详细的分析。

答案 1 :(得分:1)

根据我的经验,使用Angular生命周期挂钩的async / await不会有问题。据我所知,它也不是一种不好的编程习惯。我曾经使用 async 实现我的生命周期方法,以后再没有任何问题。

如果您有疑问,也可以检查该线程以获取更多信息:https://github.com/angular/angular/issues/17420