$cat~/glossario/generator.md

Generator

Assíncrono

Função pausável com function* e yield produzindo iterador.

generator.mdmarkdown
01

seção

Explicação

Generator — Função pausável com function* e yield produzindo iterador.

function* yield pausa; .next() retorna { value, done }. Iterable protocol.

async function* para await inside generator. Co libraries antigas.

02

seção

Exemplo

snippetJavaScript
function* range(n) {  for (let i = 0; i < n; i++) yield i;}[...range(3)]; // [0,1,2]
03

seção

Modo de uso

  • Lazy sequences

  • Custom iterables

  • State machines pausáveis

04

seção

Armadilhas comuns

  • Forgotten .next() never runs body past yield

  • Generator not automatically async

05

seção

Termos relacionados