Node.js setTimeout 未退出
Node.js setTimeout not exiting
我正在编写一个程序,试图解决一个难题,但对 CPU 花费的时间有限制,并尝试使用 setTimeout 来实现它,它会在一定时间后退出程序时间过去了,但是当时间用完时什么也没有发生。归结为一个简单的测试用例:
setTimeout(function () {
process.exit(1)
}, 10)
while (1) {}
上面的代码不会在 10 毫秒后退出,而是保持挂起状态。
我做错了什么?
javascript是异步的,也就是一次一个任务。 JS只会在当前任务完成或需要额外操作(等待响应,I/O操作等)时切换到另一个任务
因为 while 循环永远不会结束并且不需要其他操作,它只会永远 运行 并且永远不会切换到 setTimeout。
更多详情:https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop
我正在编写一个程序,试图解决一个难题,但对 CPU 花费的时间有限制,并尝试使用 setTimeout 来实现它,它会在一定时间后退出程序时间过去了,但是当时间用完时什么也没有发生。归结为一个简单的测试用例:
setTimeout(function () {
process.exit(1)
}, 10)
while (1) {}
上面的代码不会在 10 毫秒后退出,而是保持挂起状态。
我做错了什么?
javascript是异步的,也就是一次一个任务。 JS只会在当前任务完成或需要额外操作(等待响应,I/O操作等)时切换到另一个任务
因为 while 循环永远不会结束并且不需要其他操作,它只会永远 运行 并且永远不会切换到 setTimeout。
更多详情:https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop