【发布时间】:2023-04-05 17:27:01
【问题描述】:
V8 既可在浏览器中使用,也可作为独立设备使用 可以集成到独立的高性能引擎 项目。 V8用于以下软件:
Google Chrome 和所有其他基于 Chromium 的网络浏览器,包括 Brave、Opera 和 Vivaldi ...
Node.js 运行环境
记住——nodejs 也使用libuv 到handle asynchronous events:
Node.js 使用 libuv 来处理异步事件。 Libuv 是一个 网络和文件系统功能的抽象层 Windows 和基于 POSIX 的系统,例如 Linux、macOS、NonStop 上的 OSS, 和 Unix。
由于浏览器和 nodejs 共享不属于web api 或节点拥有api 的公共部分。
我假设某些功能可以通过 libuv 完成 - 与浏览器的实现方式不同。
两者之间有哪些不同的 API/JS 实现示例?
【问题讨论】:
-
你说的不同是什么意思?
-
提升 libuv 功能的代码与无法做到这一点的浏览器实现相比。
-
不确定我是否正确理解您的问题,但 Timers API 的实现方式不同。因为
ref/unref在浏览器上下文中毫无意义。试试typeof setTimeout(() => {}) -
很好的例子!你还有更多吗?
-
Bert Belder 的演讲:youtube.com/watch?v=5soA6MCRODg 解释了 NodeJS 中的事件循环是如何产生的。希望这能让你朝着正确的方向前进。
标签: javascript node.js google-chrome v8 libuv