I went trough ES6 features and Generators caught my eye. One thing that sprang to mind is chaining Promise objects, that I could not do with loops. What other mechanics we will be able to do, that we could not before?
I do understand this is broad question, still I can't think of anything but Promises at the moment.
By using
yield
, generators can be suspended at any point in the control flow of your function, saving your current state of execution (scope & stack).Without generators, this is more complicated:
Generators are generically useful for traversing data structures, creating a simple stream-like iterator that yields all elements in order. Think of tree traversal, or DFS/BFS in graphs for simple examples.