我有一个同步调用,我需要将其转换为异步,我正在使用async/await关键字,但这只会在任务完成后返回一次结果,我需要逐个将结果返回到UI。
场景是,在用户验证后,我会向用户显示任务列表,但是我希望在从数据库检索到任务后逐个加载任务。以下是我的actionResult,它将搜索条件组合在一起以预过滤任务:
public async Task<ActionResult> Index(string searchTerm = null, int page = 1)
{
Shared.InitialiseCriteria(SearchCriteria);
SearchCriteria.DepartmentID = DepartmentID;
SearchCriteria.PageSize = 15;
SearchCriteria.FreeText = searchTerm;
var model = await DoStuff(SearchCriteria);
if (Request.IsAjaxRequest())
{
return PartialView("_ConversationList", model);
}
return View(model);
}
这里是一个await任务,它调用GetConversation函数,该函数本质上获取了任务,当找到第一个任务时,我需要将其加载到Index视图中:
private async Task<Result> DoStuff(CSearchCriteria SearchCriteria)
{
return GetConversations(SearchCriteria);
}