@webe
frontend

Как работает promise внутри resolve?

Из документации - Вызов Promise.resolve(value) создаёт успешно выполнившийся промис с результатом value.

const sleep = ()=> new Promise((resolve)=> {console.log("вечный pending")})

Promise.resolve(sleep()).then((data) => {
  console.log(data);
})

Я ожидал, что в data будет промис, ведь resolve должен был пробросить данные моментально, как сказано в описании.
Но resolve ждет исполнения промиса, почему так? Или тут нужно просто запомнить и не доверять русской документации?
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Суть в том, как работает then.
"Успешно выполнившийся промис с результатом value", создаётся как и написано. Однако поскольку value - тоже промис, then ожидает его исполнения.
Промис не может возвращать в then промис по определению. Не важно каким образом вы пытаетесь это сделать. Если в возврат попал промис - следующий then будет его ждать. Интуитивность.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы