Node.js 15中提供的一些功能:

  • AbortController
  • N-API Version 7 ?
  • npm 7
  • Throw on unhandled rejections ?
  • QUIC
  • V8 8.6

中止控制器

AbortController 是一个全局实用工具类,可根据AbortController Web API,在选定的基于Promise 的API 中发出取消信号:

  1. const ac = new AbortController();
  2. ac.signal.addEventListener('abort',
  3. () => console.log('Aborted!'),
  4. { once: true }
  5. );
  6. ac.abort();
  7. 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=modeprocess标志来切换模式。

QUIC

QUIC 是一种新的基于UDP 的传输协议,它是HTTP/3 的基础传输协议。QUIC 具有内置的TLS 1.3 安全性、流控制、错误纠正、连接迁移和多路复用。
Node.js 15 附带QUIC 的实验性支持,可通过--experimental-quic 配置标志编译Node.js 来启用。核心net 模块公开了Node.js QUIC 实现:

  1. 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