Modern Asynchronous JavaScript (PragProg)

Delve into async features of JavaScript from ES2020 through ESNext. Start building custom asynchronous iterators and generators, and more for fast, lean code.

Faraz K. Kelhini @Faraz

edited by Margaret Eldridge @Margaret

JavaScript today must interact with data-intensive APIs and networks. The solution is a program that can work asynchonously instead of finishing tasks in order. In modern JavaScript, instead of callbacks you’ll use promises to improve your application’s performance and responsiveness. JavaScript features introduced in ES2020, ES2021, and ESNext like Promise.allSettled(),Promise.any(), and top-level await help you develop small, fast, low-profile applications. With the AbortController API, cancel a pending async request before it has completed. Modern Asynchronous JavaScript gives you an arsenal of tools to build programs that always respond to user requests, recover quickly from difficult conditions, and deliver maximum performance.

Applications today must work with information on remote servers, and users expect a quick response to complex interactions at all times, whether on a high-speed 5G cellular network or slow public WiFi. JavaScript provides developers with advanced tools to coordinate the asynchronous parts of their code efficiently and deliver responsive programs. Faster applications equal happier users, which is the promise of asynchronous JavaScript.

With Modern Asynchronous JavaScript you’ll learn techniques for managing your async code. Features like ES2021 Promise.any() allow you to safeguard your async code from external issues that are out of your control like server downtime. You’ll discover secret weapons like top-level await to initialize resources, define dependency paths dynamically, and load dependencies with a fallback implementation. You’ll even learn to how to set a time limit for async requests and react if they take too long to complete.

Fast, reliable applications are a must in today’s world, where users demand increasingly greater amounts of data on mobile devices. Asynchronous programming may require more cautious planning than synchronous programming but the outcome is rewarding. Asynchronous JavaScript allows you to write code that is nimble but reliable, leading to programs that load faster, respond quicker, and most importantly that you can trust to function properly.

Faraz Kelhini is a technical author at LogRocket who is passionate about moving the web forward and promoting patterns and ideas that make coding more productive. With more than a decade of software development experience, Faraz has in-depth knowledge of the JavaScript language and its related APIs. You can follow him on Twitter at @FarazKelhini.

Don’t forget you can get 35% off with your Devtalk discount! Just use the coupon code “" at checkout :+1:


Corresponding tweet for this thread:

Share link for this tweet.


I’m the book’s editor, Margaret Eldridge. I am eager to hear from readers of the beta so we can make this book even better! Note, give it a day or two before the beta is actually for sale. We are lining up the ducks to make it available.


The page does not appear to be visible at the moment.


Congrats Margaret and Faraz! I’m definitely interested in this book and I am sure lots of other people will be too - JS-land is a mess and anything that helps simplify things is definitely welcomed :023: Hopefully we can get a book club going for it soon!

That’s what you get for being a part of Devtalk Austin - news so hot that the source pages aren’t even up yet :003:

(I’m sure they won’t be long)


Thanks so much @AstonJ! :023: JavaScript can be an unusual language to work with. But with the recent editions of ECMAScript, the perception of JavaScript has evolved from a simple toy language into a powerful weapon!

I hope you enjoy reading my book as much as I enjoyed writing it! :grinning: