在MVC/.Net Core中使用“return Ok(await result)”可以吗

Isr*_*ina 1 asp.net-mvc

我得到了在 MVC/.Net Core 控制器中使用的示例代码

 public async Task<IActionResult> GetData([FromQuery]string id, CancellationToken cancellationToken)
        {
            Person person= new Person { 
                Id = id,
                Name = "Test name"
            };
            return Ok(await Task.FromResult(person));
        }
Run Code Online (Sandbox Code Playgroud)

wait可以在 Ok() 内部使用吗

Ste*_*ary 6

await将参数传递给Ok(或任何其他方法)时可以使用。

return Ok(await SomeMethodAsync());
Run Code Online (Sandbox Code Playgroud)

大致相当于

var result = await SomeMethodAsync();
return Ok(result);
Run Code Online (Sandbox Code Playgroud)

这大致相当于

var resultTask = SomeMethodAsync();
var result = await resultTask;
return Ok(result);
Run Code Online (Sandbox Code Playgroud)