Javascript, due to its single-threaded nature, traditionally relied on callback functions to handle asynchronous processes. As your Javascript application grows, you would encounter "Callback Hell", which makes your code unreadable and error-prone. There are now several ways to combat callback hell, and make your application development more enjoyable. The presentation will quickly go over shortcomings of callback functions, an overview of ES2015 promises, and generators, and how those two paradigms are related to the new ES2016 feature async/await.