我有一个关于Javascript的单线程性质的问题.
console.log("1");
setTimeout(function(){console.log("2");},3000);
console.log("3");
setTimeout(function(){console.log("4");},1000);
Run Code Online (Sandbox Code Playgroud)
这段代码的结果是1 3 4 2.如你所见,4之后2让我想知道在单线程环境中不应该2追求4?如果没有,那么为什么JS知道第二个setTimeout应该在第一个之前完成?难道不应该有两个同时工作的线程来完成两个setTimeouts才能通知EventLoop吗?