Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台 JavaScript 运行环境。Node.js 由 Node.js Foundation(已与 JS Foundation 合并为 OpenJS Foundation)持有和维护,亦为 Linux 基金会的项目。Node.js 采用 Google 开发的 V8 运行代码,使用事件驱动、非阻塞和异步输入输出模型等技术来提高性能,可优化应用程序的传输量和规模。这些技术通常用于资料密集的即时应用程序。
Node.js v20.4.0 现已发布,本次更新内容如下:
Mock Timers
新功能允许开发人员为时间相关的功能编写更可靠和可预测的测试。它包括MockTimers
,能够模拟setTimeout
,来自globals
、node:timers
和node:timers/promises
的setInterval
。
该功能提供了一个简单的 API 来推进时时间、启用特定计时器以及释放所有计时器。
import assert from 'node:assert';
import { test } from 'node:test';
test('mocks setTimeout to be executed synchronously without having to actually wait for it', (context) => {
const fn = context.mock.fn();
// Optionally choose what to mock
context.mock.timers.enable(['setTimeout']);
const nineSecs = 9000;
setTimeout(fn, nineSecs);
const threeSeconds = 3000;
context.mock.timers.tick(threeSeconds);
context.mock.timers.tick(threeSeconds);
context.mock.timers.tick(threeSeconds);
assert.strictEqual(fn.mock.callCount(), 1);
});
支持显式资源管理提案
Node 正在为其资源添加对显式资源管理提案的支持。#48518
其他显着变化
- [
fe333d2584
] - crypto:将根证书更新到 NSS 3.90 (Node.js GitHub Bot) #48416 - [
60c2ea4e79
] - doc : 将 vmoroz 添加到协作者 (Vladimir Morozov) #48527 - [
5cacdf9e6b
] - doc : 将 kvakil 添加到协作者 (Keyhan Vakil) #48449 - [
504d1d7bdc
] - (SEMVER-MINOR) tls : 为动态 ALPN 协商添加 ALPNCallback 服务器选项 (Tim Perry) #45190
更多详情可查看:https://nodejs.org/en/blog/release/v20.4.0
为您推荐与 nodejs 相关的帖子:
- Node.js v14.20.1、16.17.1 & 18.9.1 发布
- Node.js 正式发布 18.13.0 带来了这些特性
- Node.js v19.4.0 发布
- Node.js v19.9.0 发布
- Node.js 20 正式发布,引入权限控制
- Node.js v20.3.0 发布
- Node.js v20.3.1 发布
- Node.js v18.17.0 (LTS) 发布
- Node.js v16.20.2、v18.17.1 & v20.5.1 发布
- Node.js 21 正式发布
- Node.js 21.2.0 发布
- Node.js v20.10.0 (LTS)
- Node.js 21.3.0 发布
- Node.js v18.19.0 (LTS) 发布
- Node.js v22 正式发布
暂无回复。