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 / 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.
Editor Actions
Use the editor to explore the example, then run it to inspect the console.
Run the code to see output here.
Expected Output
loading lesson
lesson readyContinue in Playground
Open this concept example in the shared playground to keep experimenting without leaving the broader workspace flow.
Open in PlaygroundRelated Concepts