console.time("Time");
var i=0;
setTimeout(function(){console.log("Timeout...")},500);
while(true){
if(i==1000000000){
console.timeEnd("Time");
console.log("whileloop breaking...");
break;
}
else{i++;}
}
在这段代码中我试图在0.5秒之后打印超时控制台,并有一个while循环它的时间后终止大约2秒钟,我通过记录所花时间显示。我预计超时,首先打印,因为它完成在0.5秒和while循环打破应打印,需要更多的时间,但它的打印while循环打破第一,然后去为超时 ...任何人都可以解释堆栈跟踪或代码流。
JavaScript是单线程的。超时无法运行,直到while循环结束。 – RobG
那么它是如何跟踪回到超时执行while循环之后?是通过堆栈? – Abhishek
超时时间预计在0.5秒内运行。调度程序不会检查,直到它可以运行它为止。 – RobG