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 “devtalk.com" at checkout :+1:

7 Likes