Node.js 15中提供的一些功能:
- AbortController
- N-API Version 7 ?
- npm 7
- Throw on unhandled rejections ?
- QUIC
- V8 8.6
中止控制器
AbortController 是一个全局实用工具类,可根据AbortController Web API,在选定的基于Promise 的API 中发出取消信号:
const ac = new AbortController();
ac.signal.addEventListener('abort',
() => console.log('Aborted!'),
{ once: true }
);
ac.abort();
console.log(ac.signal.aborted); // Prints True
当调用abortController.abort() 时发出abort 事件。AbortController 将仅触发一次abort 事件。附加到AbortSignal 上的事件侦听器应使用{ once: true}选项(或等效于EventEmitterAPI 的once()),以确保一旦abort 事件得到处理,便将事件侦听器删除。
N-API 7
N-API 7 是上一个大版本以来的第一个新版,并带来了使用ArrayBuffers 的更多方法。
npm 7
- npm 工作区
- 新的package-lock.json 格式
- yarn.lock 文件支持。
- 默认安装对等依赖项。
默认抛出
从Node.js 15开始,的默认模式unhandledRejection
已更改为throw
(从warn
)。在throw
模式下,如果unhandledRejection
未设置钩子,则将unhandledRejection
其引发为未捕获的异常。拥有unhandledRejection
钩子的用户应该看不到行为上的变化,并且仍然可以使用--unhandled-rejections=mode
process标志来切换模式。
QUIC
QUIC 是一种新的基于UDP 的传输协议,它是HTTP/3 的基础传输协议。QUIC 具有内置的TLS 1.3 安全性、流控制、错误纠正、连接迁移和多路复用。
Node.js 15 附带QUIC 的实验性支持,可通过--experimental-quic
配置标志编译Node.js 来启用。核心net 模块公开了Node.js QUIC 实现:
const { createQuicSocket } = require('net');
V8 8.6
- Promise.any()
- AggregateError
- String.prototype.replaceAll()
- 逻辑赋值运算符&&=、||= 和??=
参考:
https://github.com/nodejs/release#release-schedule
https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V15.md#15.0.1
https://medium.com/@nodejs/node-js-v15-0-0-is-here-deb00750f278