ExpertiDict

JavaScript · Intermediário · Inglês · Técnico

generator

/ˈdʒɛnəɹeɪtɚ/substantivo

Função declarada com function* que pode pausar com yield e ser retomada depois, devolvendo valores um a um. Chamá-la cria um iterador sem executar o corpo.

Onde usar

Usado em sequências preguiçosas e infinitas, paginação e máquinas de estado. Em code review, aparece também em bibliotecas antigas de fluxo assíncrono, hoje substituídas por async await.

Em código

function* contar() {
  let n = 0;
  while (true) yield n++;
}
const it = contar();
console.log(it.next().value); // 0
console.log(it.next().value); // 1

Exemplos

I used a generator to produce an infinite sequence lazily.

Usei um generator para produzir uma sequência infinita de forma preguiçosa.

Calling the generator doesn't run anything until next.

Chamar o generator não executa nada até o next.

Cuidado

Achar que chamar o generator executa o código: ele só roda a cada next().

Sinônimos

função geradora

Veja também

Todos os termos de JavaScript