This is a cached version of https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Async_JS from 2/28/2026, 3:28:12 PM.
Asynchronous JavaScript - Learn web development | MDN
In this module, we take a look at asynchronous JavaScript, why it is important, and how it can be used to effectively handle potential blocking operations, such as fetching resources from a server.
Skip to main content Skip to search Asynchronous JavaScript Next In this module, we take a look at asynchronous JavaScript, why it is important, and how it can be used to effectively handle potential blocking operations, such as fetching resources from a server. Prerequisites Asynchronous JavaScript is a fairly advanced topic, and you are advised to work through Dynamic scripting with JavaScript modules before attempting this. Note: If you are working on a computer, tablet, or another device where you can't create files, you can try running the code in an online editor such as CodePen or JSFiddle. Tutorials and challenges Introducing asynchronous JavaScript In this article, we'll learn about synchronous and asynchronous programming, why we often need to use asynchronous techniques, and the problems related to the way asynchronous functions have historically been implemented in JavaScript. How to use promises Here we'll introduce promises and show how to use promise-based APIs. We'll also introduce the async and await keywords. Implementing a promise-based API This article will outline how to implement your own promise-based API. Introducing workers Workers enable you to run certain tasks in a separate thread to keep your main code responsive. In this article, we'll rewrite a long-running synchronous function to use a worker. Sequencing animations Challenge This challenge asks you to use promises to play a set of animations in a particular sequence. See also Asynchronous Programming from the fantastic Eloquent JavaScript online book by Marijn Haverbeke. Next Help improve MDN Was this page helpful to you? Yes No Learn how to contribute This page was last modified on Jul 3, 2025 by MDN contributors. View this page on GitHub • Report a problem with this content