Эффект 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, время: 20:43. |