Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP W3.CSS C C++ C# HOW TO BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS DSA TYPESCRIPT ANGULAR ANGULARJS GIT POSTGRESQL MONGODB ASP AI R GO KOTLIN SWIFT SASS VUE GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE INTRO TO PROGRAMMING INTRO TO HTML & CSS BASH RUST TOOLS

JS Tutorial

JS Home JS Introduction JS Where To JS Output JS Syntax JS Operators JS If Conditions JS Loops JS Strings JS Numbers JS Functions JS Objects JS Scope JS Dates JS Temporal  New JS Arrays JS Sets JS Maps JS Iterations JS Math JS RegExp JS Data Types JS Errors JS Debugging JS Style Guide JS Reference JS Projects  New JS Versions JS HTML DOM JS HTML Events JS HTML First

JS Advanced

JS Functions JS Objects JS Classes JS Asynchronous JS Modules JS Meta & Proxy JS Typed Arrays JS DOM Navigation JS Windows JS Web API JS AJAX JS JSON JS jQuery JS Graphics JS Examples JS Reference


Asynchronous Programming

JavaScript normally runs one statement at a time.

Each statement must finish before the next statement can run.

If a task takes a long time, it can block the page and make the browser feel frozen.

Asynchronous programming lets JavaScript start a long-running task and continue running other code while waiting for the result.


Step 1

Async Programming

JavaScript executes code one line at a time. Each line must finish before the next line can run.

Asynchronous is how JavaScript can allow some code to run in the background, and let their results be handled when they are ready.


Step 2

Async Timeouts

The setTimeout() method schedules a function to run after a delay in milliseconds.

It is an asynchrounus operation used to delay code execution without freezing the browser.


Step 3

Async Callbacks

A callback is a function passed to another function.

Callbacks can be synchronous or asynchronous.

In asynchronous JavaScript, callbacks are often used to handle results that are ready later.

Note

A callback is not asynchronous by itself.

A callback is simply a function passed to another function.

Callbacks become part of asynchronous programming when they are used by asynchronous APIs, like setTimeout(), events, or fetch().

Step 4

Async Promises

JavaScript Promises were created to make asynchronous JavaScript easier to use.

A Promise object represents the completion or failure of an asynchronous operation.

A Promise can be in one of three exclusive states: pending, rejected or fulfilled.


Step 5

Async Await

The async and await keywords make Promise-based code easier to read.

Behind the scenes, async and await still use Promises.

The async keyword before a function makes the function return a promise.

This is true even if you return a normal value.

If the function returns a value, JavaScript automatically wraps that value in a Promise.


Step 6

Async Parallel

An await statement waits for one Promise before continuing.

If several asynchronous operations do not depend on each other, waiting for them one by one may be slower than necessary.

Instead, you can start all the operations at the same time and wait for them together.


Step 7

Async Fetch

Modern apps use async code to get data.

fetch() is the modern way to request data from a server.

fetch() is asynchronous and returns a promise.


Step 8

Async Debugging

Asynchronous bugs are difficult because the code runs later.

This chapter shows practical ways to debug fetch(), promises, async and await.


Step 9

Async References

All Promise Object Methods

Revised February 2026


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookies and privacy policy.

Copyright 1999-2026 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.

-->