ExpertiDict

Python · Avançado · Português · Técnico

gerador assíncrono

/ʒe.ɾa.ˈdoɾ a.ˈsĩ.kɾo.nu/substantivo

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

Veja também

Todos os termos de Python