Задать вопрос
@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 ждет исполнения промиса, почему так? Или тут нужно просто запомнить и не доверять русской документации?
  • Вопрос задан
  • 104 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
Суть в том, как работает then.
"Успешно выполнившийся промис с результатом value", создаётся как и написано. Однако поскольку value - тоже промис, then ожидает его исполнения.
Промис не может возвращать в then промис по определению. Не важно каким образом вы пытаетесь это сделать. Если в возврат попал промис - следующий then будет его ждать. Интуитивность.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы