У меня вопрос о единственном потоковом характере Javascript.
console.log("1");
setTimeout(function(){console.log("2");},3000);
console.log("3");
setTimeout(function(){console.log("4");},1000);
Результат этого кода 1 3 4 2
. Как вы видите, 4
появляется после 2
, что заставляет задуматься, что в одной потоковой среде не должно 2
появилось после 4
? Если нет, то почему JS знает, что второй setTimeout
должен заканчиваться до первого? Не должно быть двух потоков, которые работают одновременно для завершения двух setTimeout
, чтобы уведомить EventLoop
?