by making your async code look synchronous. • Generators can accept input, give output, or both. • Generators can be used to model things like observables, iterables, csp, lazily evaluated infinite arrays, and much more fun stuff. • Use generators. They give you power.