Эффект setTimeout
Добрый день уважаемые участники форума.
Скорей всего это где - то кем - то уже описано, но я не смог найти (правильнее сказать не смог понять как спросить google) описание следующего эффекта. Эффект. setTimeout() выполняется только после выхода из основного потока программы, и вот как я это понял:
setTimeout(function() {
console.log("x1");
}, 1);
setTimeout(function() {
console.log("x2");
}, 1);
console.log("X3");
for (var i=0,x=45; i<1000000000;i++) { x=x/5*5; }
console.log("X4");
Я ожидал что в консоль будет выведено: x3 x1 x2 x4 На деле выводится: x3 *пауза, ждём вычисления* x4 x1 x2 Вопрос стандартный: с чего бы это? Буду очень благодарен за простое объяснение этого эффекта и будут приятным бонусом ссылки на rtfm. |
JS однопоточен по определению setTimeout не может наступить пока исполняется любой JS на этой странице
события выстраиваются и ждут завершения JS и только после этого события наступают |
Цитата:
|
Спасибо за внимание, я тутже нашёл ответ на свой же вопрос, уважаемые модераторы, можете без зазрения совести удалять эту ветку.
На случай сохранения треда вот ссылки на ответ: Цитата:
Описание модели исполнения асинхронных (конкурирующих) блоков |
Цитата:
|
| Часовой пояс GMT +3, время: 16:19. |