In javascript we sometimes have to deal with large sets of data that come in asynchronously.
Two tools we can use to do this are streams and generators.
Generators yield data, and continue logic after each yielded item is consumed.