Generators implements the iterator protocol in JavaScript.
It's a mix between an iterator and a function.
Execution is paused until .next() is invoked.
It looks a lot like an async function, reads like a function that execute synchronously. But requires the invoker to request the next value to advance into the execution.
Observable or EventEmitter ==> Push new values to consumers. Iterator or Generator ==> Consumer pull new values.
Array.from is same performance that for ... of in the benchmark.