JSFiddle - React, Tailwind, and code Playground

JavaScript

// Эта функция Не асинхронная, заблокирует контекст пока не закончит своё выполнение (возвратит результат из return)
function newPromise () {
  return new Promise ((resolve) => {
    resolve("some result")
  })
}

// Эта функция асинхронная, возвратит промис ещё до начала выполнения
async function getResult () {
	/*
  На следующей строке мы будем ждать результат выполнения промиса "new Promise(...)",
  который возвратила нам функция "newPromise()"
  */
  let strString = await newPromise() // в переменную упадёт строка "some result"
  console.log('strString:', strString)
  return strString
}

let strPromise = getResult(); // Возвращает не результат, а промис выполнения функции
strPromise.then(result => {
	console.log('strPromise:', result) // Выполниться когда разрешиться промис "strPromise"
});