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