O que é generators javascript?

technical
Intermediário

Os generators-javascript são uma poderosa funcionalidade introduzida no ECMAScript 6, que permitem criar funções que podem ser pausadas e retomadas, gerando valores ao longo do tempo, em vez de retornar um valor único. Essa capacidade torna os generators ideais para a criação de iterações complexas e eficientes.

Os generators-javascript são uma poderosa funcionalidade introduzida no ECMAScript 6, que permitem criar funções que podem ser pausadas e retomadas, gerando valores ao longo do tempo, em vez de retornar um valor único. Essa capacidade torna os generators ideais para a criação de iterações complexas e eficientes.

Como Funcionam os Generators?

Os generators-javascript funcionam através de um mecanismo de suspensão e retomada. Quando uma função geradora é chamada, ela retorna um iterador que pode ser usado para percorrer todos os valores gerados. A função geradora é pausada sempre que encontra uma instrução

yield
, podendo ser retomada posteriormente com a chamada de
next()
no iterador.

Benefícios dos Generators

Os generators-javascript trazem diversos benefícios para a programação em JavaScript:

  1. Iterações Complexas: Facilitam a criação de iterações complexas, como a navegação por árvores de dados ou a execução de operações sequenciais.
  2. Código Mais Limpo: Permitem escrever código mais limpo e fácil de entender, separando a lógica de iteração da lógica de processamento.
  3. Gerenciamento de Recursos: Permitem o gerenciamento eficiente de recursos, pois o generator pode ser pausado e retomado sem a necessidade de armazenar grandes quantidades de dados em memória.

Aplicações Práticas

Generators são amplamente utilizados em bibliotecas e frameworks para a criação de streams de dados, processos assíncronos e até mesmo em sistemas de promessas e async/await.

Generators vs Funções Normais

Diferente das funções normais que retornam um valor e terminam sua execução, os generators-javascript podem ser interrompidos e reiniciados, gerando múltiplos valores ao longo do tempo.

Exemplos de código em generators javascript

function* generatorFunction() {
  yield 'Valor 1';
  yield 'Valor 2';
  yield 'Valor 3';
}
const generator = generatorFunction();
console.log(generator.next()); // { value: 'Valor 1', done: false }
console.log(generator.next()); // { value: 'Valor 2', done: false }
console.log(generator.next()); // { value: 'Valor 3', done: false }

📂 Termos relacionados

Este termo foi útil para você?