1
这可能是一个基本问题。我们如何在MVC应用程序中使用异步等待Web API调用?假设我在我的mvc ajax表单中使用了一个提交按钮,并且在控制器中我使用了异步web api调用,在这种情况下,在返回ActionResult之前是否必须等待异步操作完成?async如何等待Web应用程序中的工作
我希望我需要等到任务完成,因为我的ajax脚本在客户端需要一个结果。
请解释在类似情况下你的洞察力和经验
这可能是一个基本问题。我们如何在MVC应用程序中使用异步等待Web API调用?假设我在我的mvc ajax表单中使用了一个提交按钮,并且在控制器中我使用了异步web api调用,在这种情况下,在返回ActionResult之前是否必须等待异步操作完成?async如何等待Web应用程序中的工作
我希望我需要等到任务完成,因为我的ajax脚本在客户端需要一个结果。
请解释在类似情况下你的洞察力和经验
要真正异步则需要等待发送回客户端之前的响应。你的控制器看起来像:
public async Task<IHttpActionResult> Read()
{
var data = await _asyncMethod();
return Ok(data);
}
所以直到await
已完成的响应不会去立即返回给客户端。仅使用async/await
关键字不会创建新线程,而是会通知当前线程响应可能不会立即可用,因此请勿阻塞等待它的线程。对于非常繁忙的控制器,这可以提高响应能力,以便控制器可以响应其他请求而不真正完成第一个请求,并且当等待的异步方法完成时,它会将响应发送回客户端。