This talk will take a deep dive into core asynchronous patterns in JavaScript, comparing the tradeoffs of callbacks, promises and async/await and demonstrating how each pattern builds on top of the previous, improving our async handling capabilities.

The goal is to show how we can use these patterns to write cleaner and more reliable (concurrent) code and demystify concepts such as the Event Queue, Single-threaded, Run to Completion and Non-Blocking.

We'll learn how to deal with things happening “at the same time “ and even eliminate time as a concern.