WEB API 调用在引入 "await" 关键字后停止工作
WEB API call stops working after introducing the "await" keyword
我有一个简单的 Web api 方法,它从数据库中检索项目列表。当该方法看起来像这样时,它会起作用并且项目显示在 UI:
[ActionName("GetServices")]
public async Task<IHttpActionResult> GetServices()
{
var services = dbContext.Service.ToListAsync();
return Ok(services);
}
但是一旦我在方法中引入 await
关键字它就停止工作(如果我在方法上放置一个断点它仍然会被击中但 UI 上没有显示任何内容) :
[ActionName("GetServices")]
public async Task<IHttpActionResult> GetServices()
{
var services = await dbContext.Service.ToListAsync();
return Ok(services);
}
"await" 本质上意味着您正在让运行时等待方法执行。第一个代码片段 returns 一个任务对象,而第二个 returns 来自 db 的实际服务。由于您是说第一个代码块显示了您必须在 UI 层中等待该任务对象的服务。在WEB API.
中放置await 后,您必须更改UI 层代码
我有一个简单的 Web api 方法,它从数据库中检索项目列表。当该方法看起来像这样时,它会起作用并且项目显示在 UI:
[ActionName("GetServices")]
public async Task<IHttpActionResult> GetServices()
{
var services = dbContext.Service.ToListAsync();
return Ok(services);
}
但是一旦我在方法中引入 await
关键字它就停止工作(如果我在方法上放置一个断点它仍然会被击中但 UI 上没有显示任何内容) :
[ActionName("GetServices")]
public async Task<IHttpActionResult> GetServices()
{
var services = await dbContext.Service.ToListAsync();
return Ok(services);
}
"await" 本质上意味着您正在让运行时等待方法执行。第一个代码片段 returns 一个任务对象,而第二个 returns 来自 db 的实际服务。由于您是说第一个代码块显示了您必须在 UI 层中等待该任务对象的服务。在WEB API.
中放置await 后,您必须更改UI 层代码