使用 Python 3.6.8 版本
async def sleeper():
time.sleep(2)
async def asyncio_sleeper():
await asyncio.sleep(2)
await asyncio.wait_for(sleeper(), 1)
await asyncio.wait_for(asyncio_sleeper(), 1)
使用time.sleep不会超时,而asyncio.sleep会超时。
我的直觉是,在协程上调用wait_for会基于协程执行的时间来计算超时时间,而不是基于协程中的单个异步调用。
背后发生了什么导致这种行为,并且有没有一种方法可以修改行为以符合我的直觉?