python - Is there a difference between 'await future' and 'await asyncio.wait_for(future, None)'? -
with python 3.5 or later, there difference between directly applying await
future or task, , wrapping asyncio.wait_for
? documentation unclear on when appropriate use wait_for
, i'm wondering if it's vestige of old generator-based library. test program below appears show no difference doesn't prove anything.
import asyncio async def task_one(): await asyncio.sleep(0.1) return 1 async def task_two(): await asyncio.sleep(0.1) return 2 async def test(loop): t1 = loop.create_task(task_one()) t2 = loop.create_task(task_two()) print(repr(await t1)) print(repr(await asyncio.wait_for(t2, none))) def main(): loop = asyncio.get_event_loop() try: loop.run_until_complete(test(loop)) finally: loop.close() main()
unfortunately python documentation little bit unclear here, if have sources pretty obvious:
in contrary await
coroutine asyncio.wait_for()
allows wait limited time until future/task completes. if not complete within time concurrent.futures.timeouterror
raised.
this timeout can specified second parameter. in sample code timeout
parameter none
results in exactly same functionality directly applying await
/yield from
.
Comments
Post a Comment