setTimeout()
不会在 Node.js 中创建新进程。Node.js 是单线程的,这意味着它使用一个主线程来执行 JavaScript 代码。setTimeout()
只是安排一个函数在指定的毫秒数后在同一线程上执行。34
setTimeout()
的工作原理是将回调函数添加到事件循环的计时器队列中。当指定的延迟时间过后,事件循环会将回调函数从计时器队列移动到事件队列中。然后,事件循环会从事件队列中取出回调函数并执行它,仍然在同一个线程内。12
如果你想要在 Node.js 中创建新进程,你需要使用 child_process
模块。5
为了更好地理解,可以将 setTimeout()
想象成一个闹钟。你设置闹钟在一段时间后响铃,但闹钟本身并不会创造一个新的你。当闹钟响起时,仍然是原来的你在处理它。同样,setTimeout()
只是安排一个函数在未来执行,而执行函数的仍然是 Node.js 的主线程。