async-await не работает глобальная переменная

Присваивание до await:

введите сюда описание изображения

Присваивание после await:

введите сюда описание изображения

В первом случае переменной присвоилось значение, а во втором нет. Почему так происходит?


Ответы (1 шт):

Автор решения: vsemozhebuty

Асинхронные функции запускаются и начинают исполняться синхронно, их асинхронность начинается с await. Поэтому в первом случае присваивание внутри функции успевает произойти до вывода в консоль вне функции, в отличие от второго случая.

Сравните:

async function foo() {
  console.log(1);
  await Promise.resolve();
  console.log(3);
};

foo();
console.log(2);

→ Ссылка