用法:
awaitable asyncio.shield(aw)
保护等待对象不成为
cancelled
。如果
aw
是协程,它会自动安排为任务。该声明:
res = await shield(something())
相当于:
res = await something()
except
,如果包含它的协程被取消,在something()
中运行的任务不会被取消。从something()
的角度来看,取消并没有发生。尽管它的调用者仍然被取消,所以 “await” 表达式仍然会引发CancelledError
。如果
something()
被其他方式(即从自身内部)取消,那也会取消shield()
。如果希望完全忽略取消(不推荐),
shield()
函数应与 try/except 子句结合使用,如下所示:try: res = await shield(something()) except CancelledError: res = None
在 3.10 版中更改:删除了
loop
范围。自 3.10 版起已弃用:如果出现弃用警告,则会发出
aw
不是Future-like 对象并且没有正在运行的事件循环。
相关用法
- Python asyncio.sleep用法及代码示例
- Python asyncio.BaseTransport.get_extra_info用法及代码示例
- Python asyncio.run用法及代码示例
- Python asyncio.wait_for用法及代码示例
- Python asyncio.create_task用法及代码示例
- Python asyncio.Task.cancel用法及代码示例
- Python asyncio.loop.run_in_executor用法及代码示例
- Python asyncio.Server用法及代码示例
- Python asyncio.Server.serve_forever用法及代码示例
- Python asyncio.Event用法及代码示例
- Python asyncio.gather用法及代码示例
- Python asyncio.to_thread用法及代码示例
- Python asyncio.Condition用法及代码示例
- Python asyncio.SelectorEventLoop用法及代码示例
- Python asyncio.run_coroutine_threadsafe用法及代码示例
- Python asyncio.Lock用法及代码示例
- Python asyncio.Future.add_done_callback用法及代码示例
- Python asyncio.loop.shutdown_asyncgens用法及代码示例
- Python asyncio.as_completed用法及代码示例
- Python asyncio.Semaphore用法及代码示例
注:本文由纯净天空筛选整理自python.org大神的英文原创作品 asyncio.shield。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。