栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么我只能在异步函数内部使用await关键字?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么我只能在异步函数内部使用await关键字?

我看到这种设计的一个专业人士。在我的后一个示例中,您看不到show_something()的主体正在执行可能会导致其暂停的操作。

这就是它如此设计的原因。编写并发代码可能非常棘手,并且异步作者认为始终显式标记代码中的挂起位置至关重要。

本文详细介绍了它(您可以从“ Get
To the Point Already”段落开始)。

但是,如果要使fetch_clean_text()成为协程,不仅会使事情复杂化,而且可能还会降低性能。

在处理I / O时,几乎只需要协程。与使用协程相比,I / O总是比开销花费更多的时间。因此,我想可以说-不,与您已经处理的I /
O相比,使用协程不会浪费大量执行时间。

有没有更好的办法?

我只能建议的唯一方法是:将处理I / O(异步部分)的逻辑与其余代码(同步部分)分开。

from typing import Awaitabledef clean_text(text: str) -> str:    return text.strip(text)async def fetch_text() -> Awaitable[str]:    return "text "async def fetch_clean_text(text: str) -> Awaitable[str]:    text = await fetch_text()    return clean_text(text)async def show_something():    something = await fetch_clean_text()    print(something)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/645811.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号