Node.js setTimeout not exiting



我正在编写一个程序,该程序将尝试解决一个棘手的问题,但CPU时间有限,并试图通过setTimeout来实现这一点,setTimeout在一定时间后退出程序,但时间用完后什么也没发生。归结为一个简单的测试用例:

setTimeout(function () {
process.exit(1)
}, 10)
while (1) {}

而不是在10毫秒后退出,以上只是保持挂起状态。

我做错了什么?

javascript是异步的,这意味着一次只能执行一个任务。JS只有在当前任务完成或需要额外操作(等待响应、I/O操作等(时才会切换到另一个任务。

因为循环永远不会结束,也不需要其他操作,所以它将永远运行,永远不会切换到setTimeout。

更多详细信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop

最新更新