Python · Avançado · Português · Técnico
gerador assíncrono
Função async def que usa yield, produzindo valores de forma assíncrona e consumida com async for. Combina geração sob demanda com esperas não bloqueantes.
Onde usar
Aparece em streaming de respostas, leitura paginada de APIs e consumo de filas. Cada item pode aguardar I/O sem travar o event loop.
Em código
import asyncio
async def contar(n):
for i in range(n):
yield i
async def main():
print([i async for i in contar(3)])
asyncio.run(main())Exemplos
Transformei a paginação em um gerador assíncrono.
Consuma o gerador assíncrono com async for.
Cuidado
Um gerador assíncrono não se percorre com for comum nem com list(); é preciso async for ou uma compreensão assíncrona dentro de uma função async.
Sinônimos
async generator