0Pricing
JavaScript Academy · Aula

Funções geradoras, yield e pequenos pipelines

Escreva funções geradoras com function*, use yield para produzir valores sob demanda, conduza-as com for...of ou next() e componha pequenos pipelines

Funções geradoras, yield e pequenos pipelines é uma aula grátis de JavaScript Academy no CoddyKit. Esta é a aula 2 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de JavaScript Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de JavaScript Academy inclui 3 aulas no total.

Por que usar geradores?

Objetivo: produzir valores sob demanda com geradores.

  • function* define um gerador
  • yield produz valores passo a passo
  • Use for...of ou next() para consumir
  • Componha fluxos pequenos (semelhantes a map)
Funções geradoras, yield e pequenos pipelines — ilustração 1

function* e yield

Os geradores usam function* e yield. A iteração é retomada a partir do último yield.

// A basic generator that yields 1..n lazily
function* countTo(n) {
  for (let i = 1; i <= n; i = i + 1) {
    yield i; // pause here and give i to the caller
  }
}

for (const x of countTo(3)) {
  console.log("value:", x);
}
Funções geradoras, yield e pequenos pipelines — ilustração 2

next() manual

next() avança pelos valores produzidos por yield e, ao final, retorna done: true quando termina.

// You can also drive a generator manually with next()
const it = countTo(2);

console.log(it.next()); // { value: 1, done: false }
console.log(it.next()); // { value: 2, done: false }
console.log(it.next()); // { value: undefined, done: true }
Funções geradoras, yield e pequenos pipelines — ilustração 3

Números pares sob demanda

Os geradores são ótimos para fluxos simples, como números pares, sem criar grandes vetores primeiro.

// Yield even numbers up to n (inclusive)
function* evensUpTo(n) {
  for (let i = 0; i <= n; i = i + 1) {
    if (i % 2 === 0) {
      yield i;
    }
  }
}

console.log("evens 0..6:", [...evensUpTo(6)]);
Funções geradoras, yield e pequenos pipelines — ilustração 4

Fluxo map sob demanda

Componha pequenas etapas: alimente um gerador com outro para criar fluxos sob demanda.

// map() as a generator: transform values lazily
function* map(iterable, fn) {
  for (const v of iterable) {
    yield fn(v);
  }
}

const doubled = map(countTo(4), function (x) { return x * 2; });
console.log("doubled:", [...doubled]);
Funções geradoras, yield e pequenos pipelines — ilustração 5

Boas práticas

Dicas:

  • Chame a função geradora para obter um iterador (ela não é executada por completo de imediato).
  • yield pausa; return encerra a sequência.
  • Quando termina, um gerador fica esgotado; chame a função novamente para obter um iterador novo.
Funções geradoras, yield e pequenos pipelines — ilustração 6

Questionário sobre o valor retornado pelo gerador

Verificação rápida: o que uma função geradora retorna?

Funções geradoras, yield e pequenos pipelines — ilustração 7

Recapitulação

Recapitulação: defina function*, produza valores com yield sob demanda, consuma-os com for...of ou next() e componha pequenos fluxos de geradores para transformações simples.

Funções geradoras, yield e pequenos pipelines — ilustração 8

Perguntas Frequentes

A aula “Funções geradoras, yield e pequenos pipelines” é grátis?

Sim — o texto completo de “Funções geradoras, yield e pequenos pipelines” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de JavaScript Academy, atualize para CoddyKit PRO. O curso de JavaScript Academy inclui 3 aulas no total.

O que vou aprender em “Funções geradoras, yield e pequenos pipelines”?

Escreva funções geradoras com function*, use yield para produzir valores sob demanda, conduza-as com for...of ou next() e componha pequenos pipelines Você pratica JavaScript Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar JavaScript Academy?

Nenhuma experiência prévia é necessária. JavaScript Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 3.

Quanto tempo leva a aula “Funções geradoras, yield e pequenos pipelines”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de JavaScript Academy?

Sim. Cada aula de JavaScript Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Protocolo iterável e for...of
  2. Funções geradoras, yield e pequenos pipelines
  3. Iteradores assíncronos — for await...of e geradores assíncronos
← Voltar para JavaScript Academy