0
從我個人理解,因爲JavaScript是單線程的,像一個動作我將如何讓UI線程連續運行
setTimeout(0, function() { alert("Hello"); });
不會阻塞UI線程,將等待,直到有一個在UI休息線程,以便它可以「跳入」並運行。這是舊的JavaScript說
「當有什麼可以做,檢查[回調]隊列,但是隻有 檢查時,有什麼可以做的隊列。」
我在說的是,有人能告訴我一個例子,瀏覽器總是有一些事情要做,因此回調隊列中的異步方法永遠不會執行?或者我對事件循環的理解完全扭曲了?
'while(true); //哈哈沒有其他線程可以跳進去了!' – usandfriends
切換到另一個選項卡。 – Teemu
您的示例代碼是borked。你已經把爭論的順序顛倒過來了。此外,最低超時時間因瀏覽器而異。 FireFox使用最低4ms,iirc。也就是說,他們還有一個非標準的'setImmediate()'函數,它儘可能快地將回調排隊。無論如何,如果有東西被無限期地阻止([它肯定是可能的])(http://stackoverflow.com/questions/34954803/how-would-i-make-the-ui-thread-run-continuously#comment57641254_34954803)) ,你遇到了更大的問題...... – canon