为什么我必须多次编写await才能进行异步查询?

史蒂文·莱蒙斯

我承认这里可能没有掌握一些基本的知识,但是在下面的代码中,为什么我必须await两次对同一查询进行两次?

我正在通过他的电子邮件地址查找一个人,这是一个数据库查找。我调用我的私有函数GetByEmailQueryAsync,如果找到,它将从数据库返回记录。我使用await此呼叫,因此我确定返回了结果(如果找到)。

为什么必须await在函数调用中再次输入关键字GetByEmailQueryAsync然后在所有函数中再次调用GetByEmail我认为,此函数的调用者不必关心此函数是否执行某些异步任务。同样,我可能在这里缺少一些基本知识。

public async Task<Person> GetByEmail(string emailAddress)
{
    return await GetByEmailQueryAsync(emailAddress);
}

private async Task<Person> GetByEmailQueryAsync(string emailAddress)
{
    return await DbContext.Set<Person>.SingleOrDefaultAsync(x => x.EmailAddress == emailAddress);
}

这是我的意思的相当基本的示例,但我希望您能理解。

约翰娜森·巴克莱

您不需要都等待。

由于您的GetByEmail方法只是调用GetByEmailQueryAsync,因此效果也很好:

public Task<Person> GetByEmail(string emailAddress)
{
    return GetByEmailQueryAsync(emailAddress);
}

实际上,不使用await两次就意味着只Task需要一个,而不是两个。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ghostscript:为什么我必须提供pdfa_def.ps才能进行PDF / A转换?

来自分类Dev

为什么只有在使用Windows Server作为网关时,我的Android手机才能进行DNS查询?

来自分类Dev

为什么配置更改必须监听方向和屏幕大小才能进行方向更改?

来自分类Dev

为什么我需要输入密码才能进行apt更新?

来自分类Dev

为什么结构必须与模板类位于同一命名空间中才能进行编译?

来自分类Dev

为什么我必须多次刷新WordPress网站才能显示它?

来自分类Dev

为什么必须为每个循环多次运行我的表才能删除表中的行?

来自分类Dev

对于Firebase简单登录,我必须登录两次才能进行注册

来自分类Dev

我怎样才能进行排列?

来自分类Dev

必须进行对话才能进行其他操作

来自分类Dev

为什么 plymouth-quit-wait.service 需要我 3 分钟才能进入我的桌面?

来自分类Dev

为什么Mac OS X需要如此频繁地重新启动才能进行更新?

来自分类Dev

为什么我必须登录Ubuntu One才能安装Steam?

来自分类Dev

为什么我必须加上括号才能使联合工作

来自分类Dev

为什么我必须双击才能激活jquery功能?

来自分类Dev

为什么操作系统需要将所有RAM复制到HDD才能进行休眠?

来自分类Dev

Haskell:为什么我不能对功能进行模式匹配?

来自分类Dev

为什么我必须在jQuery查询后使用[0]

来自分类Dev

为什么我必须打两次查询?

来自分类Dev

为什么我必须在mongoDB查询中使用+

来自分类Dev

为什么我必须进入我的私人bin文件夹才能执行.sh脚本?

来自分类Dev

为什么我必须单击两次才能运行我的功能?

来自分类Dev

为什么我必须在 https://localhost:80 中键入“:80”才能加载我的网站?

来自分类Dev

为什么我必须输入两次我的回复才能注册?

来自分类Dev

为什么我必须重新加载页面才能让我的 JS 事件工作?

来自分类Dev

在Unix系统上,为什么我们必须显式地`open()`和`close()`文件才能够对其进行`read()`或`write()`?

来自分类Dev

为什么我的异步mongodb查询功能挂了?

来自分类Dev

必须先呈现响应内容,然后才能进行迭代

来自分类Dev

类的方法必须相同才能进行序列化吗?

Related 相关文章

  1. 1

    Ghostscript:为什么我必须提供pdfa_def.ps才能进行PDF / A转换?

  2. 2

    为什么只有在使用Windows Server作为网关时,我的Android手机才能进行DNS查询?

  3. 3

    为什么配置更改必须监听方向和屏幕大小才能进行方向更改?

  4. 4

    为什么我需要输入密码才能进行apt更新?

  5. 5

    为什么结构必须与模板类位于同一命名空间中才能进行编译?

  6. 6

    为什么我必须多次刷新WordPress网站才能显示它?

  7. 7

    为什么必须为每个循环多次运行我的表才能删除表中的行?

  8. 8

    对于Firebase简单登录,我必须登录两次才能进行注册

  9. 9

    我怎样才能进行排列?

  10. 10

    必须进行对话才能进行其他操作

  11. 11

    为什么 plymouth-quit-wait.service 需要我 3 分钟才能进入我的桌面?

  12. 12

    为什么Mac OS X需要如此频繁地重新启动才能进行更新?

  13. 13

    为什么我必须登录Ubuntu One才能安装Steam?

  14. 14

    为什么我必须加上括号才能使联合工作

  15. 15

    为什么我必须双击才能激活jquery功能?

  16. 16

    为什么操作系统需要将所有RAM复制到HDD才能进行休眠?

  17. 17

    Haskell:为什么我不能对功能进行模式匹配?

  18. 18

    为什么我必须在jQuery查询后使用[0]

  19. 19

    为什么我必须打两次查询?

  20. 20

    为什么我必须在mongoDB查询中使用+

  21. 21

    为什么我必须进入我的私人bin文件夹才能执行.sh脚本?

  22. 22

    为什么我必须单击两次才能运行我的功能?

  23. 23

    为什么我必须在 https://localhost:80 中键入“:80”才能加载我的网站?

  24. 24

    为什么我必须输入两次我的回复才能注册?

  25. 25

    为什么我必须重新加载页面才能让我的 JS 事件工作?

  26. 26

    在Unix系统上,为什么我们必须显式地`open()`和`close()`文件才能够对其进行`read()`或`write()`?

  27. 27

    为什么我的异步mongodb查询功能挂了?

  28. 28

    必须先呈现响应内容,然后才能进行迭代

  29. 29

    类的方法必须相同才能进行序列化吗?

热门标签

归档