Назад к вопросам
Middle
2
// Promise.resolve() // .then(() => console.log(1)) // // .then(() => console.log(2)) // // Promise.resolve() // .then(() => console.log(11)) // // .then(() => console.log(22)) //
Компании, где спрашивали
Сбермаркетинг
Ответ от нейросети
sobes.tech AI
В приведённом коде две цепочки промисов, каждая начинается с Promise.resolve(). Важно понять порядок вывода в консоль.
Каждый .then() добавляет обработчик в очередь микротасков, которые выполняются после текущего стека вызовов.
Поскольку обе цепочки создаются последовательно, их обработчики будут поставлены в очередь микротасков в том порядке, в котором они объявлены.
Поэтому вывод будет:
1
2
11
22
Объяснение:
- Сначала выполняется первый
.then(() => console.log(1)), выводит1. - Затем следующий
.then(() => console.log(2)), выводит2. - После этого выполняется
.then(() => console.log(11))из второй цепочки, выводит11. - И в конце
.then(() => console.log(22)), выводит22.
Если бы мы хотели, чтобы вывод был смешанным или в другом порядке, нужно было бы изменить структуру промисов или использовать setTimeout для отложенного вызова.