Modern Asynchronous JavaScript
Tackle Complex Async Tasks with Less Code
by: Faraz K. Kelhini
Published | 2021-10-10 |
---|---|
Internal code | fkajs |
Print status | In Print |
Pages | 77 |
User level | Advanced |
Keywords | javascript, async, asynchronous, promises, ajax, web development |
Related titles | |
ISBN | 9781680509045 |
Other ISBN |
Channel epub: 9781680509274 Channel PDF: 9781680509281 Kindle: 9781680509250 Safari: 9781680509267 Kindle: 9781680509250 |
BISACs | COM051260 COMPUTERS / Programming Languages / JavaScriptCOM060160 COMPUTERS / Web / Web ProgrammingCOM060160 COMPUTERS / Web / Web Programming |
Highlight
JavaScript today must interact with data-intensive APIs and networks. The solution is a program that can work asynchronously 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.
Description
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.
Contents and Extracts
- Preface
- Who Is This Book For?
- What You Should Know
- What’s in This Book?
- Online Resources
- Introduction
- Demystifying Asynchronous Execution
- Working with Events
- Working with Callback Functions
- Introducing Promises
- Creating Settled Promises
- Handling Rejection
- Managing Multiple Concurrent Promises
- Creating Custom Asynchronous Iterators
- Getting Ready
- Creating a Custom Iterator
- Creating a Custom Asynchronous Iterator
- Iterating over Async Iterables with for…await…of
- Detecting Whether an Object Is Iterable
- Wrapping Up
- Enhancing Custom Iterators with Generators
- Getting Ready
- Using a Generator to Define a Custom Iterator
- Creating an Asynchronous Generator
- Iterating over Paginated Data
- Wrapping Up
- Fetching Multiple Resources
- Getting Ready
- Executing Multiple Promises
- Using Promise.allSettled() to Fetch Multiple Resources
- Wrapping Up
- Improving Reliability and Performance
- Getting Ready
- Using the Promise.any() Method
- Avoiding the Single Point of Failure
- Improving the Performance of Your App
- Wrapping Up
- Setting a Time Limit for Async Tasks
- Getting Ready
- Comparing Promise.race() to Promise.any()
- Enforcing a Time Limit for Async Tasks
- Wrapping Up
- Canceling Pending Async Requests
- Getting Ready
- Canceling Async Tasks After a Period of Time
- Handling an Aborted Request
- Removing Multiple Event Listeners
- Making a User Cancelable Async Request
- Aborting Multiple Fetch Requests with One Signal
- Wrapping Up
- Accessing Promise Results from Another Module
- Getting Ready
- Using Top-Level await
- Putting Top-Level await to Work
- Wrapping Up
- Thank you for reading!