The document discusses common patterns for asynchronous JavaScript including callbacks, promises, and generators. It provides examples of using callbacks for event handling and avoiding conflicts. It then introduces promises as a better solution than nested callbacks and shows how to chain and wait for multiple promises. Finally, it presents generators as a cleaner way to write asynchronous code that looks synchronous using yield and async/await syntax.