---
title: "Why Does a JavaScript Async Function Return a Promise Even When I Return a Number?"  
description: "Why Does a JavaScript Async Function Return a Promise Even When I Return a Number?"  
author: "Mariana Medina"  
published: 2026-10-29  
canonical: https://answers.mindstick.com/qa/119604/why-does-a-javascript-async-function-return-a-promise-even-when-i-return-a-number  
category: "Mix Category"  
tags: ["javascript", "Promises", "programming"]  
reading_time: 1 minute  

---

# Why Does a JavaScript Async Function Return a Promise Even When I Return a Number?

I’m trying to understand what JavaScript does with the value returned from an `async` function. Even when the function returns a plain number, the caller receives a Promise:

```js
async function getCount() {
  // The async function wraps this returned value in a Promise.
  return 3;
}

const result = getCount();

// This is false because result is a Promise, not the number 3.
console.log(result === 3);

// Await the Promise to read the fulfilled value.
result.then(count => console.log(count));
```

Is that wrapping simply part of what the `async` keyword means, or is there a practical reason for making every return value asynchronous? I’m especially interested in how this affects code that sometimes returns a normal value and sometimes awaits an operation.


---

Original Source: https://answers.mindstick.com/qa/119604/why-does-a-javascript-async-function-return-a-promise-even-when-i-return-a-number

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
