我对使用带有生命周期钩子的异步/等待打字稿功能感到好奇。
该功能非常方便,但是可以使生命周期钩子异步吗?
我已经多次测试了这种方法,它按预期工作,但我找不到任何可靠的答案,这是好的做法,恐怕可能不是。
举例说明:
角:
async ngOnInit() {
await someAsyncFunction();
}
离子的:
async ionViewWillEnter() {
await someAsyncFunction();
}
我不知道"相对较新"——它自 2.1 年以来就一直存在。
该功能确实很方便,但是可以制作生命周期吗 钩子异步?
有几篇文章正在做你正在做的事情(只是谷歌异步等待ngOnInit(。没有什么可以表明用角度做是不行的。不知道离子。
但我找不到任何可靠的答案是好的做法,我是 怕可能不是。
良好做法的问题在于它们固执己见。就个人而言,我认为它使代码更具可读性。您可以查看 https://medium.com/@benlesh/async-await-it-s-good-and-bad-15cf121ade40 以查看另一种意见和更详细的分析。
根据我的经验,使用 async/await 与 Angular 生命周期钩子没有问题。据我所知,它也不是一个糟糕的编程实践。我曾经使用异步实现我的生命周期方法,以后没有任何问题。
如果您有任何疑问,也可以查看此线程以获取更多信息:https://github.com/angular/angular/issues/17420