我有一个函数,它产生:
<async_generator object functionOne at 0x000001CC289F8D30>
是否可以解析async_generator对象,使其包含的数组是可访问的?
发布于 2021-03-14 08:28:42
它后面没有任何数组(它是一个生成器,设计上是惰性的),您应该使用async for或使用__aiter__()和__anext__()手动迭代此对象。这可能会对你起作用:
async_generator_iterator = <your_async_generator_function>()
res = [i async for i in async_generator_iterator]如果要在异步上下文之外进行计算,只需使用异步函数包装它并在事件循环中运行:
async def get_result_async(asyncgen):
return [i async for i in asyncgen]
def get_result_sync(asyncgen):
loop = asyncio.get_event_loop()
coro = get_result_async(asyncgen)
res = loop.run_until_complete(coro)
return res
async def functionOne():
yield 1
yield 2
yield 3
asyncgen = functionOne()
get_result_sync(asyncgen)
# => [1, 2, 3]https://stackoverflow.com/questions/66619787
复制相似问题