---
slug: "js-async-await-function-with-promise"
title: "Differences in Behavior with and without Await in Functions that Create and Return Promises Inside JS Promises"
description: "Here's an English translation of the summary for the Japanese blog article:\n\n\"Whether it gets resolved or not: A JavaScript code example.\"\n\nIf you need further assistance or more details, feel free to ask!"
url: "https://www.ytyng.com/en/blog/js-async-await-function-with-promise"
publish_date: "2019-02-04T04:15:04Z"
created: "2019-02-04T04:15:04Z"
updated: "2026-02-27T08:48:53.444Z"
categories: []
keywords: ""
featured_image_url: "https://media.ytyng.com/resize/20230812/8b06350e064f4959979a90311faec913.png.webp?width=768"
has_video: false
has_music: false
video_urls: []
music_urls: []
lang: "en"
---

# Differences in Behavior with and without Await in Functions that Create and Return Promises Inside JS Promises

<p>Whether it gets resolved or not.</p>
<pre><span>/**<br /></span><span> * There is a promise<br /></span><span> * </span><span>@returns </span><span>{Promise&lt;string&gt;}<br /></span><span> */<br /></span><span>function </span><span>anyPromise</span>(label) {<br />    <span>return new </span><span>Promise</span>((resolve, reject) =&gt; {<br />        <span>console</span>.<span>log</span>(label, <span>'resolve'</span>);<br />        resolve(<span>'success.'</span>);<br />    });<br />}<br /><br /><span>/**<br /></span><span> * Case 1<br /></span><span> * Await and return a promise<br /></span><span> * </span><span>@returns </span><span>{Promise&lt;string&gt;}<br /></span><span> */<br /></span><span>async function </span><span>awaitPromiseReturn</span>() {<br />    <span>return await </span><span>anyPromise</span>(<span>'await:'</span>);<br />}<br /><br /><span>/**<br /></span><span> * Case 2<br /></span><span> * Return the promise directly<br /></span><span> * </span><span>@returns </span><span>{Promise&lt;string&gt;}<br /></span><span> */<br /></span><span>function </span><span>promiseReturn</span>() {<br />    <span>return </span><span>anyPromise</span>(<span>'no-await:'</span>);<br />}<br /><br />{<br />    <span>const </span><span>p </span>= <span>awaitPromiseReturn</span>();<br />    <span>console</span>.<span>log</span>(<span>'await:'</span>, <span>p</span>);<br /><br />    <span>p</span>.<span>then</span>((text) =&gt; {<br />        <span>console</span>.<span>log</span>(<span>'await:'</span>, text);<br />    });<br />}<br /><br />{<br />    <span>const </span><span>p </span>= <span>promiseReturn</span>();<br />    <span>console</span>.<span>log</span>(<span>'no-await:'</span>, <span>p</span>);<br /><br />    <span>p</span>.<span>then</span>((text) =&gt; {<br />        <span>console</span>.<span>log</span>(<span>'no-await:'</span>, text);<br />    });<br />}</pre>
<pre>// Result<br />await: resolve<br />await: Promise { &lt;pending&gt; }<br />no-await: resolve<br />no-await: Promise { 'success.' }<br />no-await: success.<br />await: success.</pre>
