I know I'm missing something basic here.
Prerequisite: I'm not allowed to edit '__main__'
.
Given that prerequisite, how can I print x
as soon as fun()
returns something ? I know I can use asynio.gather
, but that would mean waiting for everything to complete.
import asyncio
async def fun(n):
for i in range(n):
await asyncio.sleep(i*.1)
yield i
def main(n):
yield from asyncio.run(fun(n))
if __name__ == '__main__':
n = 5
for x in main(n):
print(x)