@vlad_kopylov

Какой порядок запуска функций?

Добрый день.
У меня возникли трудности с пониманием выполнения асинхронного кода
const promise = new Promise(resolve =>
  setTimeout(() => resolve('Success'), 1000)
).then(data => console.log(data));


Вот как я думаю:
/*
1.Создание промиса
2.стрелочная функция с resolve
3.Запускаем таймер
4.then
5.стрелочная функция с data
6.console.log
7.callback внутри setTimeout
8.вызов функция resolve
*/

Можете пожалуйста объяснить, по очередность запуска функций?
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
zendor
@zendor
1. Объявление константы promise.
2. Создание promise и вызов cb переданного в конструктор Promise (стрелочная функция) и соотв. запуск таймера (setTimeout).
3. Для возвращенного promise вызывается then и регистрируется обработчик выполнения, затем then возвращает новый promise.
4. Ссылка на возвращенный из then promise присваивается константе promise.
5. Через секунду выполняется resolve('Success') и ранее зарегистрированный обработчик выполнения promise (вызывается первый cb переданный в then) выводит в консоли 'Success'.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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