我很好奇使用带有生命周期挂钩的ascript / await打字稿功能。
该功能确实很方便,但是可以使生命周期挂钩异步吗?
我已经对该方法进行了多次测试,并且可以按预期工作,但我找不到任何可靠的答案,这是否是一种好的做法,恐怕可能不是。
用于说明:
角度:
async ngOnInit() {
await someAsyncFunction();
}
离子:
async ionViewWillEnter() {
await someAsyncFunction();
}
答案 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