Created
December 28, 2016 19:42
-
-
Save ronaiza-cardoso/b4c4f6e10ec8e8d635bf1edfa85f648f to your computer and use it in GitHub Desktop.
Generators
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
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