立即等待与延迟等待的返回类型

8个质子

我正在寻求澄清为什么立即await返回异步非空任务的类型,而推迟await返回任务本身。如果我在标题或其他地方的术语不正确,请告诉我。

private async Task<string> GetUserId(Guid id)
{
   string thisUserId = null;
   ... do stuff ...
   return thisUserId;
}

public async Task<IActionResult> MyFunc(Guid id)
{
   var a = await GetUserId(id);
   var b = GetUserId(id);
   ... do stuff ...
   await b;

   return Ok(true);
}

为什么a类型的string,而b类型是Task<string>

磷虾

在这两种情况下,您的方法总是返回一个类型为 的对象Task<string>但是,当您执行 时await,其结果就是 的结果Task,也就是您的字符串。

因此,如果您在最初调用该方法时执行此操作,则会Task立即处理该方法但是,在第二次调用时,Task直到“做事”之后才处理在这种情况下,您的变量仍然Task是将返回字符串的变量一旦你最终调用await它,那么你就会得到那个任务的结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

异步并等待返回类型混淆

来自分类Dev

立即等待异步操作

来自分类Dev

Bash等待立即终止?

来自分类Dev

当一切都立即返回时异步/等待

来自分类Dev

为什么异步方法不立即返回等待状态?

来自分类Dev

为什么异步方法不立即返回等待状态?

来自分类Dev

OpenCL内核等待/延迟

来自分类Dev

立即等待与以后等待之间的区别

来自分类Dev

立即运行任务,然后等待

来自分类Dev

Javascript睡眠/延迟/等待功能

来自分类Dev

JQuery等待多个延迟解决

来自分类Dev

延迟的JQuery:同步等待结果

来自分类Dev

Asp.net mvc5。异步等待。等待具有diff返回类型的任务

来自分类Dev

打字稿异步/等待无法确定正确的返回类型

来自分类Dev

等待返回的过程

来自分类Dev

异步等待返回任务

来自分类Dev

等待方法返回true

来自分类Dev

在等待返回,好吗?

来自分类Dev

等待任务返回WaitingForActivation?

来自分类Dev

等待方法返回true

来自分类Dev

在等待返回,好吗?

来自分类Dev

进程等待不返回

来自分类Dev

VBS脚本等待返回

来自分类Dev

Selenium 返回并等待

来自分类Dev

异步和等待-控件会立即从MVC操作方法返回吗?

来自分类Dev

jQuery Promise .done()立即触发,不等待服务器返回

来自分类Dev

QThread :: quit()是立即结束线程还是等待直到返回事件循环?

来自分类Dev

SAPUI5等待延迟的对象//等待.done()函数

来自分类Dev

等待方法是否立即放弃对Lock的控制