Writing Modern Async JavaScript by Delicious Insights

Writing Modern Async JavaScript

From raw callbacks to promises to async/await, everything you need to master async JS code with ease!

Finally a reference course on async!

Tired of only finding hodge-podge resources on async programming in JavaScript? Look no further, here is the all-in-one course that covers both fundamentals of async programming and the latest upgrades with async/await.

Say goodbye to hackish code that works by accident and puzzling for hours before usual errors! Thanks to these 3 hours of videos split into digestible, bite-size single-topic segments of 1 to 10 minutes each, you can walk away with rock-solid knowledge and in-depth understanding!

Check out the testimonials and freely-accessible lessons ("Preview" links in the Contents) below!

Testimonials

Learned a ton! Topics are covered in a progressive and comprehensive manner. Even as a seasoned JS dev I learned lots. The described pitfalls and traps definitely resonated with me!
Étienne Voilliot, Lead Developer
This course is very well done, with short, digestible, crystal-clear bits. Truly an excellent resource to boost your skills! You can click that Buy button with your eyes closed :)
Corinne Schillinger, front-end consultant
It took me years to understand callbacks, promises and async/await. I wish that I could have watched this 3-hour training instead. Gonna be my go-to suggestion going forward.
Christopher Chedeau, Front-end Engineer, Facebook
As always, they delivered with this new course! […] There are tons of resources out there already but I never saw these concepts explained in such a clear, concise and accurate way.
Juliette Temem, Computer Scientist, Adobe
This is a very well-executed video course! Tackles every topic in an efficient, structured and comprehensive way. Clear explanations and a dash of humor remind me of their in-room trainings ;-)
Julie Escoffier, front-end developer
This course on async... is the bomb! I had been struggling with a bug on a command dispatch algorithm, and when I was done with the course material, I could solve that easily!
Manuel Birba, full-stack developer

38 videos (approx. 3hr), and 40+ code examples. Not to mention free lifetime updates!

Video Icon 38 videos

Contents

Part 1: raw callbacks
Intro, definition & optional asynchrony
5 mins
Examples of async APIs
2 mins
Pitfalls: Run-To-Completion & execution order
3 mins
Pitfalls: Exception propagation
2 mins
Pitfalls: Zalgo
5 mins
Pitfalls: late registration, missed calls and extraneous calls
3 mins
Sequencing callbacks
10 mins
Node-style callbacks
4 mins
Pitfalls inherent to Node-style callbacks
4 mins
Limitations inherent to callbacks
3 mins
Grouping and racing callbacks
5 mins
Debugging async code
11 mins
Outro part 1
1 min
Part 2: promises
Intro and reminders on callback pitfalls
3 mins
Promises: an old concept
3 mins
Promises in the JS ecosystem and their native/emulated availability
4 mins
NOT just another way to write callbacks
1 min
Terminology and principles
7 mins
Promise-based APIs
8 mins
NOT replaced by async/await
1 min
Consuming a promise with .then()
9 mins
What about exceptions?
7 mins
Creating a promise
6 mins
Parallelizing promises
7 mins
Sequencing promises
2 mins
Timeouts, cancellation and future combinators
10 mins
Dedicated ESLint rules
4 mins
“Choose your poison” API design: callbacks + promises
6 mins
Outro part 2
2 mins
Part 3: async/await
Intro and definitions
3 mins
Tons of benefits
6 mins
What is an async function?
4 mins
How await behaves
6 mins
More examples
6 mins
Anti-patterns
9 mins
Dedicated ESLint rules
2 mins
for…await…of and async iterators
8 mins
Outro part 3
2 mins

Slides and code

We know that getting a solid grasp on underlying concepts and theory is just as important as knowing how to implement them, so the course goes back-and-forth between elements of lecture (a la Powerpoint) and concrete code examples that can run in either Node or browsers.

Not only that, but the contents of these slides strives to remain concise and offer a welcome complement to the more detailed explanations in the audio track, whilst allowing you to “follow” the course even if you’re watching it in a noisy environment.

All code samples are provided in addition to the videos. And you retain a free lifetime access to updates and upgrades we might put in later!

Tutorials only go so far

The web is chock-full of tutorials on anything and everything, and our main gripe with them is that they almost always only show the golden path, the perfect run-through, with no hiccups or pitfalls.

That's not the actual life of a developer.

Our video courses, just like our in-class trainings, strive to illustrate all potential pitfalls and common mistakes to better dig into their causes and go through optimal solutions. This is how we share the depth of expertise that only numerous years in the field can bring, so you can strengthen your own expertise faster!

FAQs

🎓 Do I need to have prior experience of async programming?

I would say no prior experience is required, but prior JavaScript experience is required. And as it's a rare dev who does JS without doing async (listening to events, making an Ajax call…), in practice: potato, potato.

🦕 Is this course compatible with IE?

The world is not compatible with IE. 😜

In all seriousness though, IE will handle the first part natively (raw callbacks), but won’t natively support promises and a fortiori async/await. You’ll have to use a tool such as Babel which allows you to run the transpiled code from IE9 with no trouble, and in some cases even IE6!

🎁 Do you provide the code samples too?

Of course we do! Every section opening has a link to a Zip file with all the code samples for that section.

Some rare examples might not be runnable as-is (e.g. those assuming a database or something), but the vast majority can be run as-is in Node and/or a modern browser.

📥 Can I download the videos to watch them later?

Yes! Every section opening contains a link to a Zip file with all the MP4 video files for that section, that you can download to view or review when you’re offline. Note that a low bandwidth is enough to watch them online, though, and that gets you extras like transcripts and related contents.

🆓 Do you have free contents related to this course?

Yes! We’ve been talking about this subject matter for a while now, so you can find several articles, talks and videos about it:


Do note that some of these are a bit old so their explanations might be less honed and comprehensive than this video course, but they still hold up well!

🎓 Do you do in-room trainings?

We sure do! We probably have the world’s most comprehensive JS training: 360° ES. 3 days to cover 100% of the language, including all the latest bells and whistles and all the nitty-gritty, for people who already use JS daily.

We also have Modern Web Apps about client-side rich web apps and PWAs, Node.js for the back-end API part (REST and GraphQL both) and Webpack for bundling, all of which are acclaimed by our trainees!

🔬 What about observables / RxJS?

It really is a related topic… Observables are in the “async + plural“ group of processing primitives, and they work in “push“ mode where async iterators (which we do cover) work in “pull“ mode.

We didn't cover these here because, first, they’re less universally useful than the rest of the course; second, they’re not (yet) native to the language; and third, they’re such a large topic that they clearly deserve their own course. By trying to fit that in just about one hour, we’d barely scratch the surface and disappoint their fans. Maybe one day!

⏲️ Do you cover platform-provided async primitives?

A few slides and examples touch on process.nextTick, setTimeout or requestAnimationFrame, to name only these, but these are Web APIs or APIs part of the Node.js core, that are outside the scope of this course, in the same way that a detailed description of Node.js’ event loop or browser distinctions between tasks and microtasks is. We don’t cover these in depth.

But if you’re into this…

  • Bert Belder, the implementer of Node’s event loop, described it in great detail and accuracy in this talk at Node.js Interactive Amsterdam.
  • Jake Archibald gave a fabulous talk on the browser side of this at JSConf.Asia.

🙃 Wouldn’t it just be easier to stick to synchronous code?

If you like to freeze the engine and waste like 99% of your CPU capacity then yes, that would indeed be the logical route. You troll, you. 😉

A course by Christophe

Christophe Porteneuve has been doing JavaScript since… JavaScript. And professionally since 1996. A former core team member on Prototype.js, co-author of a TC39 spec and world-renowned JS expert, he's got 15,000+ hours as a trainer and dozens of conference talks behind him. In this course, he makes sure to share his technical expertise with humor and clarity.