Kyle Simpson is an Open Web Evangelist from Austin, TX, who's passionate about all things JavaScript. He's an author, workshop trainer, tech speaker, and OSS contributor/leader.
In this first day of our intensive course, we will dive deep into core mechanisms of the JS language, probably more than you ever have before. Our goal is to not merely understand what these things do, but how and why. We will cover: The content of this course tracks roughly to the two "You Don't Know JS" books, "Scope & Closures" and "this & Object Prototypes".
In this second day of our intensive course, we will dive deeply into the topic of asynchrony. First, we'll look at callbacks and see why they are functional but insufficient for managing async flow control in our complex modern applications. We'll identify the two major problems that make up "callback hell" (no, nothing to do with nesting/indentation!). Then, to clean up this mess, we'll look at two different ES6 mechanisms which each solve a different aspect of callback hell: generators and promises. We'll see that generators are about solving sync-looking async, while promises are about restoring trust to our continuations. And then we'll see how to compose promises with generators for solid async. After gaining a firm grasp over these reinvented async methodologies, then we'll look some at higher-order async patterns, and learn ways of identifying when and where to apply them: To wrangle all these different async abstractions, we'll practice the exercises with the "asynquence" library. Prerequistes: Day 1 "Advanced JavaScript" course, and/or 2-3 years of solid core JS experience.