Interview Q&A / JavaScript

BeginnerQuick answer1 min readUpdated 3 Oct 2026

What does an async function return?

SHORT ANSWER

Always a Promise. A returned value becomes the fulfilled value, and a thrown error becomes a rejection. That is true even when the function contains no await.

Explain it simply

Putting async in front of a function is like telling the customer, "I'll give you a token, not the food." Whatever you return inside is wrapped into a promise automatically, and anything you throw becomes a rejected promise.

So the caller cannot read the value directly. They must use .then(...) or await it from another async function.

Returning another promise from an async function is fine too: it is unwrapped, so you get one promise, not a promise of a promise.

Example

js
async function one() { return 1; }
async function boom() { throw new Error("x"); }

console.log(one() instanceof Promise);     // Output: true
one().then((v) => console.log(v));         // Output: 1
boom().catch((e) => console.log(e.message)); // Output: x

async function viaAwait() {
  const v = await one();
  return v + 1;
}
viaAwait().then(console.log);              // Output: 2

The true prints first, since it runs synchronously; the other lines follow in order.

What to say in the interview

"An async function always returns a promise. A normal return fulfills it, a thrown error rejects it. Callers need then or await to read the value. await can only be used inside an async function or at the top level of a module."

Common mistakes

  • Using the return value of an async function directly, such as if (checkUser()), which is always truthy because a Promise is an object.

#javascript#async#promises

Related questions

Practise more JavaScript questions

Test your recall with short answers, then return to the detailed explanations when you need context.

Open JavaScript quick answers →

Get new questions like this by email

One short email when something new and useful lands. No spam, unsubscribe in one tap.

By subscribing you agree to the Privacy Policy.