我对 Node.js 技术有一个基本的困惑。让我用这个小例子来解释。
我有这段代码
setTimeout(function (){
console.log('world');
}, 2000);
console.log('hello');
当我开始执行此代码时,它会立即打印“hello”,并在 2 秒后打印“world”。
现在我只想知道,如果说 node.js 是单线程框架,那么这个 setTimeout 函数在哪个上下文或在哪里(线程/进程)执行,因为唯一的单线程正在执行剩余的代码(打印世界) .
在像 DB hit 这样的 I/O 调用的情况下,node.js 使用 Libeio,而后者又在内部使用线程。所以它根本不是单线程的。
我对吗??
请建议。
谢谢