簡體   English   中英

從Web API操作方法調用異步方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM