Skip to content

Instantly share code, notes, and snippets.

@ronaiza-cardoso
Created December 28, 2016 19:42
Show Gist options
  • Save ronaiza-cardoso/b4c4f6e10ec8e8d635bf1edfa85f648f to your computer and use it in GitHub Desktop.
Save ronaiza-cardoso/b4c4f6e10ec8e8d635bf1edfa85f648f to your computer and use it in GitHub Desktop.
Generators
/*
Enquanto iterators personalizados são uma ferramenta muito útil, sua criação requer uma programação cuidadosa devido à
necessidade de manter explicitamente seu estado interno. Generators prove uma alternativa poderosa: ele permite definir um
algorítmo por meio da escrita de uma simples função que pode manter o seu próprio estado.
Um generator é um tipo especial de função que trabalha como uma fábrica para iterators. Uma função se torna um generator quando
contém um ou mais expressões construtoras e se usa a sintaxe ``function*``
*/
function* idMaker(){
var index = 0;
while(true)
yield index++;
}
var gen = idMaker();
console.log(gen.next().value); // 0
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2
// ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment