用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。