簡體   English   中英

異步Web API方法返回什么?

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

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