如何使 UI 线程连续运行

How would I make the UI thread run continuously

本文关键字:连续 运行 线程 UI 何使      更新时间:2023-09-26

据我所知,因为JavaScript是单线程的,所以像这样的操作

setTimeout(0, function() { alert("Hello"); });

不会阻塞 UI 线程,会等到 UI 线程中断,以便它可以"跳入"并运行。这是古老的JavaScript谚语

"当无事可做时,检查[回调]队列。但只有 无事可做时检查队列。

我想说的是,有人可以给我看一个例子,其中浏览器总是有事情要做,因此回调队列中的异步方法永远不会执行?还是我对事件循环的理解完全扭曲了?

正如您所指出的,回调是在浏览器无事可做时完成的。如果从未运行回调,用户将认为浏览器无响应。这是一种可能的情况,尽管不太可能被认为是正常的。

假设超时回调将发生的情况下实现代码是完全可以的。 你想要做的是创建一个能够容忍以某些时间方差发生的回调的实现。差异将与处理其他回调和事件所花费的最长时间有关。