Как сделать с помощью промиса так, чтобы вывелось сначала 1 а потом 2 в консоле?
console.log(2);
setTimeout(() => {
console.log(1)
}, 2000);
Ответы (1 шт):
Автор решения: egor.bokov
→ Ссылка
Почитайте про работу eventLoop в браузере и ответите сами себе на вопрос. Первый вызов попадает в основной стэк, в то время как setTimeout() помещается в callback queue И только после того как стэк очистится от выполнения, туда начнут попадать инструкции из callback queue.
Поэтому даже если вы укажете 0ms во времени исполнения setTimeout() - он вс ё равно попадает в очередь и будет ждать опустошения стека
Так что, есть вариант использовать промисы, либо аналогичным образом первый вызов обернуть в setTimeout();