Async functions always return a promise - Lets deep into the Async world

Async functions are a way to make the asynchrounous operation synchronously by awaiting for the resopnse. Lets see it in the example straight away,

// Normal async function - Returning promise
const getCats = async () => {
  return new Promise((resolve, reject) =>
    setTimeout(
      () =>
        resolve([
          {
            name: 'tiger',
          },
          {
            name: 'jimmy',
          },
        ]),
      2000,
    ),
  )
}

// Self invoking async function
;(async () => {
  console.log(getCats()) // Promise { <pending> }
  const cats = await getCats()
  console.log(cats) // [ { name: 'tiger' }, { name: 'jimmy' } ]
})()

As you can see, we are returning a promise in our example.

Now lets see the next example by returning direct JSON array,

// async function - Returning JSON
const getCatsJson = async () => {
  return [
    {
      name: 'tiger',
    },
    {
      name: 'jimmy',
    },
  ]
}

// Self invoking async function
;(async () => {
  console.log(getCatsJson()) // Promise { [ { name: 'tiger' }, { name: 'jimmy' } ] }
  const catsJson = await getCatsJson()
  console.log(catsJson) // [ { name: 'tiger' }, { name: 'jimmy' } ]
})()

As you can check the console log, even though we returned a JSON object from the async function. It was wrapped as a promise. So we still need to await and resolve the promise.

You can always resolve the async without await using promise way,

getCatsJson().then(console.log) // [ { name: 'tiger' }, { name: 'jimmy' } ]

You can check the examples here,

https://codesandbox.io/s/async-promise-return-value-fpis9

Hope, this helps you to understand how async returns the value by wrapping it as a Promise 😋

Beginners to ProNode Js

Visual Guide to API Design Best Practices

This visual eBook covers essential best practices for designing robust APIs using REST principles.

This book is ideal for beginners and backend developers seeking to enhance their API design skills. However, it is not suited for those seeking an in-depth exploration of API design. This book is a quick read under 40 slides like scrolling through your instagram feed.

Visual Guide to API Design Best Practices