在异步方法中,如果希望在最后一个await语句之前获取前面的执行结果,可以使用变量来保存这些结果,然后在需要的地方使用这些变量。

在你的代码中,可以使用以下方式来保存前面的执行结果:

public async Task CreateAsync(TaskAddDto input)
{
    // ...

    var resutl = new WarehouseLocationTask(CurrentUser.TenantId, input.Task.TaskId, TaskTypeEnum.BatchAdd, TaskStatusEnum.Ongoing, input.Task.TotalNum, CurrentUser.Name);
    var task1 = await _warehouseLocationTaskRepository.InsertAsync(resutl);
    var taskTemp = ObjectMapper.Map<List<WarehouseLocationTaskTempAddDto>, List<WarehouseLocationTaskTemp>>(input.TaskTemp);

    var result1 = await wlTask1(resutl);
    var result2 = await wlTask2(taskTemp);

    // 后台任务的执行代码
    await _backgroundJobManager.EnqueueAsync(new WarehouseLocationTaskDataArgs() { dataList = taskTemp, taskid = input.Task.TaskId, tenantId = CurrentUser.TenantId });
}

现在,你可以在最后一个await语句之前使用result1result2变量来访问前面执行的结果。


原文地址: https://www.cveoy.top/t/topic/qnH1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录