ótima pergunta!

minha resposta pessoal é: sim, sobrou algumas (se não muitas), utilidades para o ES6 Generators.

apesar da maioria dos exemplos na comunidade mostrarem apenas o uso com requisições http, o que vale lembrar é que Generators são funções que podem ser pausadas e, a qualquer momento, retornar um valor para o contexto no qual foram usados. O redux-saga usa isso muito bem!

outro exemplo é se você quer iterar apenas pedaços de uma estrutura de dados, com métodos como .map, .forEach, não se é possível fazer isso, pois eles precisam iterar sob a estrutura completa.

as soluções restantes são for ou while com break e que, sinceramente, dependendo do que você precisa fazer, não fica um fluxo muito intuitivo (se você ler o código, cima-baixo, terá que ficar fazendo ping-pong entre pontos do arquivo, que é onde o break acontece etc).

Generators são perfeito para esse cenário. Você pode ler esse artigo, que explica passo a passo.

o mesmo se aplica ao ler um stream (seja AWS Kinesis ou um fs.createReadStream) tem um ótimo exemplo nesse artigo. (geralmente eu uso serverless-webpack, e posso até utilizar async generators)

você também pode utilizar dos novos Symbols, como [Symbol.iterator]() e transformar qualquer estrutura de dados em uma estrutura de dados iterável. O Dr. Axel Rauschmayer explica isso muito bem no capítulo Asynchronous iteration do livro Exploring ES2018 and ES2019.

alguns links úteis:

Written by

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store