# \`await\` in normal function

**URL:** <https://es.discourse.group/t/await-in-normal-function/2200>\
**Category:** 💡 Ideas\
**Created:** [November 5, 2024, 6:53am UTC](https://es.discourse.group/t/await-in-normal-function/2200 "2024-11-05T06:53:13Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![carnoxen](https://yyz2.discourse-cdn.com/free1/user_avatar/es.discourse.group/carnoxen/32/2283_2.png) [@carnoxen](https://es.discourse.group/u/carnoxen)\
**Post date:** [November 5, 2024, 6:53am UTC](https://es.discourse.group/t/await-in-normal-function/2200/1 "2024-11-05T06:53:13Z")

</div>

## before

`await` syntax is only used in `async` function.

## after

When `await` syntax is allowed in normal function, it will be convinient. You don't need more `async` functions for values from promise.

```js
function exec() {
    const fetched = await fetch('https://es.discourse.group');
    console.log(fetched);
}

exec();

```

---

<div class="post-metadata">

**Author:** ![ljharb](https://yyz2.discourse-cdn.com/free1/user_avatar/es.discourse.group/ljharb/32/8_2.png) [@ljharb](https://es.discourse.group/u/ljharb)\
**Post date:** [November 5, 2024, 11:56am UTC](https://es.discourse.group/t/await-in-normal-function/2200/2 "2024-11-05T11:56:56Z")

</div>

That is by design; `await` is mostly sugar for Promises, so you always need one.

---

<div class="post-metadata">

**Author:** ![aclaymore](https://yyz2.discourse-cdn.com/free1/user_avatar/es.discourse.group/aclaymore/32/501_2.png) [@aclaymore](https://es.discourse.group/u/aclaymore)\
**Post date:** [November 5, 2024, 7:29pm UTC](https://es.discourse.group/t/await-in-normal-function/2200/3 "2024-11-05T19:29:51Z")

</div>

There is [GitHub - tc39/proposal-async-do-expressions: async `do` expressions for JavaScript](https://github.com/tc39/proposal-async-do-expressions)

> allow you to introduce an asynchronous context within synchronous code without needing an immediately-invoked async function expression.
