async/await Is Promise Syntax

An async function always returns a Promise. await pauses the execution of that async function until the awaited Promise settles, but it does not block the JavaScript thread. The rest of the async function becomes a continuation that resumes later.

This distinction is critical: await makes asynchronous code easier to read without turning asynchronous operations into synchronous blocking operations.

Async Function
async function loadUser() {
  const response = await fetch('/api/user');
  const user = await response.json();
  return user;
}

loadUser().then(console.log);
💡 The async function returns a Promise. Each await suspends that function's continuation until the awaited operation settles.
Key Takeaways
  • Every async function returns a Promise.
  • await pauses the async function, not the entire JavaScript runtime.
  • Async/await is built around Promise semantics.
Knowledge Check

What does an async function always return?