Issue
I need to return a value in async function. I tried to use synchronous form of return:
import asyncio
async def main():
for i in range(10):
return i
await asyncio.sleep(1)
print(asyncio.run(main()))
output:
0 [Finished in 204ms]
But it just return value of the first loop, which is not expexted. So changed the code as below:
import asyncio
async def main():
for i in range(10):
yield i
await asyncio.sleep(1)
for _ in main():
print(_)
output:
TypeError: 'async_generator' object is not iterable
by using async generator I am facing with this error. How can I return a value for every loop of async function?
Thanks
Solution
You need to use an async for
which itself needs to be inside an async
function:
async def get_result():
async for i in main():
print(i)
asyncio.run(get_result())
Answered By - Jan Wilamowski
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.