In JavaScript, some operations take time to complete, such as fetching data from an API or waiting for a timer.

Asynchronous JavaScript allows JavaScript to handle these operations without blocking other work.

Let's understand it with simple examples!

1. Synchronous JavaScript

Synchronous code runs one line at a time, in order.

console.log("First"); console.log("Second"); console.log("Third"); 

Output:

First Second Third 

Each statement runs before the next one.

2. Asynchronous JavaScript

Asynchronous operations allow JavaScript to continue other work while waiting for an operation to finish.

console.log("First"); setTimeout(() => { console.log("Second"); }, 2000); console.log("Third"); 

Output:

First Third Second 

Why?

  • "First" prints immediately.
  • setTimeout() schedules the callback to run after approximately two seconds.
  • "Third" prints without waiting for the timer.
  • "Second" prints when the timer finishes and its callback can run.

This is a simple example of asynchronous JavaScript.

3. Where Do We Use Asynchronous JavaScript?

Asynchronous JavaScript is commonly used for:

  • Fetching data from APIs.
  • Loading products in an e-commerce website.
  • Sending login details to a server.
  • Uploading files.
  • Communicating with databases through a backend.

For example, we can fetch products from an API:

fetch("https://fakestoreapi.com/products") .then((response) => response.json()) .then((products) => { console.log(products); }) .catch((error) => { console.log("Error:", error); });