Surya JS Journey

Learn JavaScript through concepts, code, and guided practice.

A focused workspace for concept study, interactive examples, visual explanations, and challenge solving.

Async JavaScriptIntermediate

Async / Await

Async and await let you write promise-based logic in a style that reads like synchronous code.

The `async` keyword makes a function return a promise, and `await` pauses execution inside that function until a promise settles. This reduces promise-chaining noise and makes asynchronous code easier to read. Under the hood, `await` still resumes execution through the microtask queue.

Explanation

The `async` keyword makes a function return a promise, and `await` pauses execution inside that function until a promise settles. This reduces promise-chaining noise and makes asynchronous code easier to read. Under the hood, `await` still resumes execution through the microtask queue.

Key Points

  • `async` functions always return a promise.
  • `await` can only be used inside async functions or supported module scopes.
  • Errors from awaited promises should be handled with `try` / `catch`.

Common Mistakes

  • Forgetting that the returned value is wrapped in a promise.
  • Using `await` outside an async context.
  • Assuming `await` blocks the whole JavaScript thread.

Practice Workspace

async-await.js

Edit the code, run it in the browser, and inspect the console output below. Reset restores the original snippet for this page.

Editor

7 lines

Output

0 entries

Mode

practice

Workspace Notes

Changes stay local until you run the code. Reset restores the original snippet immediately for another pass.

Live editing

Safe to change before every run.

Fast reset

Return to the original starter instantly.

async-await.js
7 linesMonaco Editor
Loading...

Editor Actions

Use the editor to explore the example, then run it to inspect the console.

Console0 entries

Run the code to see output here.

Expected Output

loading lesson
lesson ready

Continue in Playground

Open this concept example in the shared playground to keep experimenting without leaving the broader workspace flow.

Open in Playground