Blazor - 何时使用异步生命周期方法



在开发 Blazor 服务器应用时,是否有任何经验法则可供初学者了解何时使用哪些生命周期方法。

OnInitialized()vsOnInitializedAsync()
OnParametersSet()vsOnParametersSetAsync()
OnAfterRender()vsOnAfterRenderAsync()

OnInitialized() vs OnInitializedAsync()

更喜欢简单的 OnInitialized() 来设置没有异步的数据,例如message="hello";.
一旦您必须调用并等待异步方法,例如在 HttpClient 上,请切换到 OnInitializedAsync()。

更多经验法则:

  • 不要使用 .结果或 .异步方法上的 Wait()
  • 不要在没有等待异步方法的情况下启动它们
  • 除非在极少数情况下,否则不要使用async void

当您弄错时,会出现错误(无法等待)或警告:

CS4032 "await"运算符只能在异步方法中使用。

很明显,您应该使用*异步方法。但不要通过使用async void.Result来"修复"它。

CS1998 此异步方法缺少"等待"运算符,并且将...

表示您不应该使用 *Async 方法。

CS4014 因为没有等待此呼叫,所以...

意味着你没有在等待你应该等待的东西。

相关内容

  • 没有找到相关文章

最新更新