async_generator' 对象不可迭代
async_generator' object is not iterable
我需要 return 异步函数中的值。
我尝试使用 return:
的同步形式
import asyncio
async def main():
for i in range(10):
return i
await asyncio.sleep(1)
print(asyncio.run(main()))
输出:
0 [Finished in 204ms]
但它只是第一个循环的 return 值,没有扩展。于是改了代码如下:
import asyncio
async def main():
for i in range(10):
yield i
await asyncio.sleep(1)
for _ in main():
print(_)
输出:
TypeError: 'async_generator' object is not iterable
通过使用异步生成器,我遇到了这个错误。我怎样才能 return 异步函数的每个循环的值?
谢谢
您需要使用 async for
,它本身需要在 async
函数中:
async def get_result():
async for i in main():
print(i)
asyncio.run(get_result())
我需要 return 异步函数中的值。 我尝试使用 return:
的同步形式import asyncio
async def main():
for i in range(10):
return i
await asyncio.sleep(1)
print(asyncio.run(main()))
输出:
0 [Finished in 204ms]
但它只是第一个循环的 return 值,没有扩展。于是改了代码如下:
import asyncio
async def main():
for i in range(10):
yield i
await asyncio.sleep(1)
for _ in main():
print(_)
输出:
TypeError: 'async_generator' object is not iterable
通过使用异步生成器,我遇到了这个错误。我怎样才能 return 异步函数的每个循环的值?
谢谢
您需要使用 async for
,它本身需要在 async
函数中:
async def get_result():
async for i in main():
print(i)
asyncio.run(get_result())