Nodejs事件循环?

时间:2020-09-01 02:27:45

标签: javascript node.js

因此,客户端javascript中的异步编程是setTimeOut在浏览器API中运行,因此它不会阻止javascript单线程。由于Node中没有浏览器API,谁来运行代码的异步部分?是C还是C ++?

1 个答案:

答案 0 :(得分:1)

首先,node.js由一个运行时环境和一个库组成,该运行时环境包括V8 Javascript引擎,一个包含事件循环的跨平台库(用C / C ++编写)(包括事件循环),该库又名为libuv充满了各种附加功能,这些附加功能不是用于进行联网,加密,文件系统访问等的标准Javascript定义的一部分。这些库函数中有许多是用Javascript和C ++组合编写的。

node.js中的异步操作全部来自用C / C ++编写的nodejs运行时库。其中包括各种内容,例如setTimeout(),用于访问文件的整个fs库,用于进行网络连接的net库,等等。