如何在 Python 3.6 中使用异步生成器?
·
回答问题
我需要处理来自服务器的几页数据。我想像这样为它制作一个生成器。不幸的是我得到了TypeError: 'async_generator' object is not iterable
async def get_data():
i = 0
while i < 3:
i += 1
data = await http_call() # call to http-server here
yield data
data = [i for i in get_data()] # inside a loop
下一个变种提高TypeError: object async_generator can't be used in 'await' expression
data = [i for i in await get_data()] # inside a loop
Answers
在你的理解中使用async for。参见PEP 530 -- 异步理解
data = [i async for i in get_data()]
根据您使用的 Python 版本,这可能仅在async def函数中可用。
更多推荐

所有评论(0)