用法:
coroutine asyncio.wait_for(aw, timeout)
等待
aw
awaitable 以超时完成。如果
aw
是协程,它会自动安排为任务。timeout
可以是None
或浮点数或 int 等待的秒数。如果timeout
是None
,则阻塞直到未来完成。如果发生超时,它会取消任务并引发
asyncio.TimeoutError
。要避免任务
cancellation
,请将其包装在shield()
中。该函数会一直等到 future 被实际取消,所以总的等待时间可能会超过
timeout
。如果在取消期间发生异常,则会传播该异常。如果等待被取消,未来的
aw
也被取消。在 3.10 版中更改:删除了
loop
范围。例子:
async def eternity(): # Sleep for one hour await asyncio.sleep(3600) print('yay!') async def main(): # Wait for at most 1 second try: await asyncio.wait_for(eternity(), timeout=1.0) except asyncio.TimeoutError: print('timeout!') asyncio.run(main()) # Expected output: # # timeout!
在 3.7 版中更改:什么时候
aw
由于超时而取消,wait_for
等待aw
被取消。此前,它提出了asyncio.TimeoutError
立即地。在 3.10 版中更改:删除了
loop
范围。
相关用法
- Python asyncio.BaseTransport.get_extra_info用法及代码示例
- Python asyncio.shield用法及代码示例
- Python asyncio.run用法及代码示例
- 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.sleep用法及代码示例
- 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.wait_for。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。