ES6 Generators
O que são Generators e como eles funcionam? Generators são funções especiais que podem ser executadas, pausadas e continuadas em diferentes estágios da sua execução, tudo isso graças a nova palavra reservada yield . Vamos ver um exemplo: function* myGenerator() { yield ‘first’; let input = yield ‘second’; yield input; } Para instanciar o objeto do generator: let gen = myGenerator(); Executando o generator pela primeira vez: console.log(gen.next()); // { value: ‘first’, done: false } Iterando em suas etapas: console.log(gen.next()); // { value: ‘second’, done: false } // passando um valor para o próximo yield console.log(gen.next(‘third’)); // { value: ‘third’, done: false } console.log(gen.next()); // { value: undefined, done: true } Vamos lá, o que está acontecendo aqui? Nós declaramos uma função generator usando a sintaxe especial: function* myfunction() {} Chamamos essa função que na sua primeira execução retorna o objeto generator. Esse objeto tem um método chamado n...