Nodejs 事件循环?

问题描述 投票:0回答:2

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

javascript node.js
2个回答
1
投票

首先,node.js 由一个运行时环境组成,其中包括 V8 Javascript 引擎、一个跨平台库(用 C/C++ 编写),其中包括事件循环,称为

libuv
,然后是一个充满各种内容的库附加函数不属于用于网络、加密、文件系统访问等的标准 Javascript 定义的一部分。其中许多库函数都是用 Javascript 和 C++ 组合编写的。

node.js中的异步操作均来自于用C/C++编写的nodejs运行时库。这包括各种各样的东西,例如

setTimeout()
、用于访问文件的整个
fs
库、用于进行网络连接的
net
库等等...


0
投票

如果您想了解有关 Nodejs I/O 事件循环如何工作的更多信息,请查看这篇详细文章:使用 libuv 解锁 Node.js 事件循环的秘密:异步 I/O 之旅

本文通过实现它来解释它是如何工作的。

© www.soinside.com 2019 - 2024. All rights reserved.