[英]Calling an async method from Web API action method
我正在从如下所示的Web API操作方法调用异步方法,但出现“无法将类型Task Employee隐式转换为Employee”错误。
我需要做什么?
我的Web API操作方法如下所示:
public IHttpActionResult GetEmployee()
{
// Get employee info
Employee emp = myDataMethod.GetSomeEmployee();
return Ok(emp);
}
我正在调用的方法如下所示:
public static async Task<Employee> GetSomeEmployee()
{
Employee employee = new Employee();
// Some logic here to retrieve employee info
return employee;
}
我需要怎么做才能调用此方法来检索员工信息?
PS GetSomeEmployee()方法必须是异步的,因为它会进行其他异步调用来检索员工数据。
您需要同步调用该方法,或者使用await
。 例如:
同步( GetEmployee()
将阻塞,直到GetSomeEmployee()
完成):
public IHttpActionResult GetEmployee()
{
// Get employee info
Employee emp = myDataMethod.GetSomeEmployee().Result;
return Ok(emp);
}
异步( GetEmployee()
将立即返回,然后在GetSomeEmployee()
完成时继续执行):
public async Task<IHttpActionResult> GetEmployee()
{
// Get employee info
Employee emp = await myDataMethod.GetSomeEmployee();
return Ok(emp);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.