Когда создаются промисы для каждого из выражений awaiting?

Промисы создаются для каждого выражения справа от await. Если выражение уже является промисом, await ожидает его завершения. Если выражение не является промисом, await обернет его в выполненный промис.

Короткий ответ

Что ответить на собеседовании

Промисы создаются для каждого выражения справа от await. Если выражение уже является промисом, await ожидает его завершения. Если выражение не является промисом, await обернет его в выполненный промис.

Подробный разбор

Ответ с пояснениями

Промисы создаются для каждого выражения справа от await. Если выражение уже является промисом, await ожидает его завершения. Если выражение не является промисом, await обернет его в выполненный промис.

Пример с асинхронной функцией:

async function example() {
  const result1 = await someAsyncOperation1(); // Промис создается здесь, если someAsyncOperation1() возвращает что-то другое
  const result2 = await someAsyncOperation2(); // Промис создается здесь
  const result3 = await Promise.resolve(10); // Промис уже существует, await его ожидает
}

В этом случае someAsyncOperation1() и someAsyncOperation2() могут возвращать промисы или обычные значения. await всегда работает с промисами.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее