All JavaScript code has to manage asynchrony in some form or another. Effective async programming means knowing various different patterns and weaving them together to make not only workable but readable and understandable code. In this course, we start from the beginning, rebuilding and rethinking why we async, and how. We solve the same problem over and over, each time with a different async pattern. By the end, we've seen and practices all the major async patterns, so we have a more concrete sense of the pros/cons.
Overview
Syllabus
- Course Introduction
- Single Threaded JavaScript
- Concurrency
- Callback Hell
- Exercise 1
- Exercise 1 Solution
- Callback Problems: Inversion of Control
- Callback Problems: Not Reason-able
- Non Fixes
- Synchronous and Asynchronous Thunks
- Exercise 2
- Exercise 2 Solution
- Thunks and Closure
- Native Promises
- Promise API
- Promise Flow Control
- Exercise 3
- Exercise 3 Solution
- Exercise 3 Questions Part 1
- Exercise 3 Questions Part 2
- Exercise 4
- Exercise 4 Solution
- Abstractions
- Sequences & Gates
- Exercise 5 & 6
- Exercise 5 Solution
- Exercise 6 Solution
- Generator Example
- Messaging
- Messaging Questions
- Async Generators
- Promises + Generators
- Exercise 7
- Exercise 7 Solution
- Quiz
- Events + Promises
- Observables
- Reactive Sequences
- Exercise 8
- Exercise 8 Solution Part 1
- Exercise 8 Solution Part 2
- Concurrency + Channels
- Blocking Channels
- Event Channels
- Exercise 9
- Exercise 9 Solution
- Recap
- Exercise 10
- Wrap-up
Taught by
Kyle Simpson