async/await 的作用是什么?

2023-12-25

我正在尝试了解 python 中的 async/await 。

我走在正确的轨道上吗?

  • async and @coroutine函数返回协程/生成器,而不是返回值。
  • await提取协程/生成器的实际返回值。
     

  • async函数结果(协程)旨在添加到事件循环中。

  • await在事件循环和等待的协程之间创建“桥梁”(启用下一个点)。
  • @coroutine's yield直接与事件循环通信。 (跳过等待结果的直接调用者)
     

  • await只能在异步函数内部使用。

  • yield只能在内部使用@coroutine.

(@coroutine = @types.coroutine)


async and @coroutine函数返回协程/生成器,而不是返回值

就技术而言,types.coroutine返回一个基于生成器的协程,它不同于生成器,也不同于协程。

wait 提取协程/生成器的实际返回值。

await https://www.python.org/dev/peps/pep-0492/#await-expression, 如同yield from,暂停协程的执行,直到它所接受的等待完成并返回结果。

异步函数结果(协程)旨在添加到事件循环中。

Yes.

wait 在事件循环和等待的协程之间创建“桥梁”(启用下一个点)。

wait 创建一个挂起点,向事件循环指示将发生某些 I/O 操作,从而允许它切换到另一个任务。

@coroutine 的yield 直接与事件循环通信。 (跳过等待结果的直接调用者)

否,基于生成器的协程使用yield from以类似的方式await, not yield.

wait 只能在异步函数内部使用。

Yes.

Yield 只能在协程内部使用。

yield from可以在基于生成器的协程中使用(生成器装饰有types.coroutine)并且,从 Python 3.6 开始,async产生异步生成器的函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

async/await 的作用是什么? 的相关文章

随机推荐

  • SQLAlchemy 基本问题

    我相信对于任何有 SQLAlchemy 经验的人来说 这都是基础知识 但我觉得这些文档没有什么帮助 而且我厌倦了挠头 给定两个类 class User Base tablename users id Column Integer prima
  • 包装 slf4j API

    我想将 slf4j 与 Logback 改造为遗留应用程序 好处是 遗留应用程序有自己的日志框架 所以我所要做的就是更改日志框架以记录到 slf4j 而不是 log4j 这就像做梦一样 我很高兴 直到我注意到 Logback 为每个日志事件
  • 如何让 IntelliSense 自动完成 XAML 中自定义/用户控件的枚举? [复制]

    这个问题在这里已经有答案了 可能的重复 WPF 如何在 vs2008 xaml 编辑器智能感知中显示枚举属性值 https stackoverflow com questions 419802 wpf how to display enum
  • 当我传递特定参数时,使用 ElementTree 的 iter() 解析 XML 找不到我的标签

    尝试从标签返回属性和值 逐字逐句地遵循 ElementTree 文档不会产生任何结果 没有错误 它只是运行并且不打印任何内容 如果我在没有参数的情况下运行 iter 它会打印每个标签 但如果有参数 它什么也不做 不知道发生了什么事 find
  • 使用 dockerfile 安装 Composer

    我对 docker 还很陌生 我尝试在 Dockerfile 中自动执行 Composer install 但在安装时似乎无法 cd 进入我的应用程序 出了什么问题 或者也许还有另一种更好的方法来做到这一点 我的 docker compos
  • 如何显示 MKAnnotation 的副标题 2 行文本并更改右侧按钮的图像?

    我正在查看 Apple 的 MapCallouts 示例 了解地图注释和标注 单击图钉时出现的气泡 每个注释都有坐标 标题和副标题 我想用两行显示字幕 我尝试过 NSString subtitle return Founded June 2
  • 即使用户已登录,wolkenkit 也会重定向到 Auth0

    我只是尝试按照 wolkenkit 文档使用聊天模板测试 wolkenkit 的身份验证 用户登录似乎可以工作 但即使用户已经登录 用户也会被重定向到 Auth0 客户端无需调用auth login方法 这是来自客户端的代码片段 wolke
  • 使 JEditable 适用于新元素 (.live)

    我正在使用 JEditable 插件进行就地编辑 我有一个 设置 功能 它调用 editable 所有相关课程 问题是 我有新附加的元素 我也想使其可编辑 显然 是新增的 editable 永远不会被叫到他们 换句话说 我希望获得 jque
  • Firebase 离线商店 - 查询未返回在线商店中的更改

    我在用着Firebase离线能力设置为 true let ref FIRDatabase database referenceWithPath my data child my users id scoresRef keepSynced t
  • 如何使用 javascript/jquery 动态更改图像?

    所以 我有这个http jsfiddle net ithril UjGhE 1 http jsfiddle net ithril UjGhE 1 请检查一下 我在这里尝试的是将主图像 img 标签的 src 动态更改为所单击图像的相同 sr
  • android 列表视图意图

    单击列表视图后 我无法创建意图 完成后提示错误 应用程序意外停止 请重试 public void onItemClick AdapterView
  • 缺少 Sweet Alert 的选择选项

    这可能是一个 ServiceNow 问题 但我添加了一个甜蜜警报来显示一个选择框 这样我就可以收集一个值以传递到下一条记录 但是选择框没有显示 弹出窗口只是没有框或选项 我缺少什么 截屏 选择框警报 https i stack imgur
  • Laravel 中的动态数据库连接

    我知道在 Laravel 中你可以通过在config database php文件 然后使用DB connection my conn name 但是无论如何都可以使用未在其中指定的连接config database php file 我正
  • 将类转换为字节数组 + C#

    如何在 C 中将类转换为字节数组 这是一个托管代码 因此以下代码失败 int objsize System Runtime InteropServices Marshal SizeOf objTimeSeries3D byte arr ne
  • 将 std::allocate_shared 与多态资源分配器一起使用

    我正在尝试创建共享指针std pmr monotonic buffer resource 我无法编译它 我缺少什么 https godbolt org z R9 jdju https godbolt org z R9jdju include
  • 为什么当工作线程要退出时我们需要检查IsIoPending?

    从win32threadpool cpp中我们知道 工作线程在通过检查20秒超时退出之前 需要通过IsIoPending 方法检查是否有IO挂起 根据我的理解 1 当工作线程要退出时 它必须完成它的工作并返回到线程池 2 基于上述1 线程退
  • HTML5 国际化

    如何更改 HTML5 的消息 或者它是否根据浏览器的语言自动更改 例如
  • Javascript 事件绑定持久化

    如果您有一个不断呈现 销毁的 HTML 元素 那么与 HTML 的 Javascript 事件绑定是否持续存在 或者是否有必要在创建 销毁周期中绑定 取消绑定事件 我正在使用 D3 生成美国各县的地图 此外 我正在生成一个工具提示叠加层 其
  • 通过 .bat 添加/删除键盘语言

    现在我使用 win7 一段时间 它经常弄乱我的键盘语言 我必须远程添加 3 种键盘语言 应用 然后删除它们 所以 我想知道是否有办法通过 bat 文件自动执行此操作 添加 3 种特定的键盘语言 然后立即删除它们 但是 我对 bat 命令几乎
  • async/await 的作用是什么?

    我正在尝试了解 python 中的 async await 我走在正确的轨道上吗 async and coroutine函数返回协程 生成器 而不是返回值 await提取协程 生成器的实际返回值 async函数结果 协程 旨在添加到事件循环