Показать сообщение отдельно
  #1 (permalink)  
Старый 17.09.2014, 10:37
Новичок на форуме
Отправить личное сообщение для diesel_boy Посмотреть профиль Найти все сообщения от diesel_boy
 
Регистрация: 17.09.2014
Сообщений: 2

Эффект 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.
Ответить с цитированием