0

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)
Jibin
  • 3,054
  • 7
  • 36
  • 51

0 Answers0