调用注入的异步服务时Blazor挂起,而注入的异步服务又调用了异步服务

时间:2019-08-28 20:00:31

标签: c# async-await blazor-server-side

我遇到一个Blazor组件的问题,该组件调用Async注入服务,而注入服务又调用了另一个Async方法。如果我将inner异步注释掉,一切正常吗?

我尝试删除内部异步调用,并且可以正常工作。我已尝试Task.CompletedTask并延迟监视。我发现所有异步方法均按设计工作,并且数据返回到组件,但是Blazor应用在呈现时会冻结。

  

组件代码:

 protected override async Task OnInitializedAsync()
    {
        try
        {
            cntrols = await parser.getFormElementsAsync();
        }
        catch(Exception e)
        {
            var x = e.Message;
        }
    }
  

来自服务:

public async Task<List<FHIRParser>> getFormElementsAsync()
{
    var tmp = await getItemsAsync();
  • getItemsAsync()调用另一个Async HTTP请求。跟踪代码都可以正常工作,直到返回到组件

我没有任何例外,只是挂起

0 个答案:

没有答案