[英]What does an async Web API method return?
具有以下簽名的Web API方法實際上返回了什么?
[HttpPost]
public async Task<IHttpActionResult> Post([FromBody] ReviewViewModel review)
{
using (var context = new BooksContext())
{
var book = await context.Books.FirstOrDefaultAsync(b => b.Id == review.BookId);
if (book == null)
{
return NotFound();
}
var newReview = context.Reviews.Add(new Review
{
BookId = book.Id,
Description = review.Description,
Rating = review.Rating
});
await context.SaveChangesAsync();
return Ok(new ReviewViewModel(newReview));
}
}
方法來自: http : //www.developerhandbook.com/c-sharp/create-restful-api-authentication-using-web-api-jwt/
我正在考慮是:
1)在.IsCompleted為true之前,框架不會向調用客戶端返回響應,或者2)在返回到客戶端后,框架必須返回給客戶端,但客戶端必須妥善處理此情況,或者3)完全執行其他操作。
async
操作是一個實現細節。
框架將等待Task
解決; 客戶不會注意到任何區別。
通過您提供的鏈接:
以這種方式編寫異步代碼允許在從數據庫中檢索數據(書和評論)並將其轉換為對象以供我們的代碼使用的同時釋放線程。 異步操作完成后,代碼將繼續執行,然后繼續執行。 (通過這種方式,我們的意思是將水合數據對象傳遞到基礎框架,並轉換為JSON / XML並返回給客戶端)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.