从 Web API 操作方法调用异步方法

本文关键字:调用 异步方法 操作方法 API Web | 更新日期: 2023-09-27 18:30:39

我正在从我的 Web API 操作方法调用一个异步方法,如下所示,但我收到"无法将类型任务员工隐式转换为员工"错误。

我需要做什么?

我的 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;
}

我需要做什么才能调用此方法来检索员工信息?

附言GetSomeEmployee() 方法必须是异步的,因为它会进行其他异步调用来检索员工数据。

从 Web API 操作方法调用异步方法

您需要同步调用该方法,或使用 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);
}