Inhaltsverzeichnis
AbortController
N-API 7
npm 7
Unbehandelte Ablehnungen werden standardmäßig ausgelöst
QUIC
V8 8.6
Promise.any()——MDN
AggregateError——MDN
String.prototype.replaceAll()——MDN
安利升级
Heim Web-Frontend js-Tutorial Die offizielle Version von Node.js 15 ist veröffentlicht und wird Node.js 14 als aktuelle stabile Version ersetzen.

Die offizielle Version von Node.js 15 ist veröffentlicht und wird Node.js 14 als aktuelle stabile Version ersetzen.

Oct 22, 2020 pm 07:57 PM
javascript node.js 前端

Die offizielle Version von Node.js 15 ist veröffentlicht und wird Node.js 14 als aktuelle stabile Version ersetzen.

Vor zwei Tagen hat Node.js offiziell die offizielle Version von Node.js 15 veröffentlicht. Node.js 15 wird Node.js 14 als aktuelle stabile Version ersetzen, die später in diesem Monat aktualisiert wird. Dies ist ein LTS ( Version mit Langzeitunterstützung. Wenn Sie die neuesten Funktionen von Node.js 15 erleben möchten, können Sie es von der offiziellen Website herunterladen.

Die offizielle Version von Node.js 15 ist veröffentlicht und wird Node.js 14 als aktuelle stabile Version ersetzen.

Video-Tutorial-Empfehlung: nodejs-Tutorial

Welche neuen Funktionen und Features bringt Node.js 15? Dies spiegelt sich hauptsächlich in den folgenden Aspekten wider:

  • AbortController
  • N-API-Version 7
  • npm 7
  • unbehandelte Ablehnungen werden standardmäßig ausgelöst
  • QUIC
  • V8 8.6

AbortController

A Die bortController-Schnittstelle stellt einen Controller dar Objekt, das es Entwicklern ermöglicht, eine oder mehrere Webanfragen nach Bedarf abzubrechen, fügte Node.js 15 eine experimentelle Implementierung von AbortController hinzu. AbortController ist eine globale Dienstprogrammklasse, die ausgehende Anforderungssignale in ausgewählten Promise-basierten APIs gemäß der AbortController-Web-API abbricht, wie unten gezeigt.

const ac = new AbortController();
ac.signal.addEventListener('abort', () => console.log('Aborted!'),
{ once: true });
ac.abort();
console.log(ac.signal.aborted);    //Prints True
Nach dem Login kopieren

Im obigen Beispiel wird das Abort-Ereignis ausgegeben, wenn die Methode abortController.abort() aufgerufen wird, und der AbortController löst das Abort-Ereignis nur einmal aus. Außerdem sollten an AbortSignal angehängte Ereignis-Listener die Parameteroption { once: true} (oder gleichwertig Once() der EventEmitterAPI) verwenden, um sicherzustellen, dass der Ereignis-Listener entfernt wird, sobald das Abort-Ereignis behandelt wird.

Die Node.js-API-Dokumentation von AbortController finden Sie unter: AbortController.

N-API 7

N-API ist eine API zum Erstellen nativer Plugins unabhängig von der zugrunde liegenden JavaScript-Laufzeitumgebung (z. B. V8) und als Teil von Node.js selbst. Diese API dient als stabile Version des kompilierten Application Binary Interface (ABI) für alle Node.js-Versionen. Es wurde entwickelt, um Add-ons-Plugins von Änderungen an der zugrunde liegenden JavaScript-Engine zu isolieren und ermöglicht, dass in einer Version kompilierte Module auf einer späteren Version von Node.js ohne Neukompilierung ausgeführt werden können.

N-API ist eine C-Sprach-API, die die Stabilität der Anwendungsprogrammierschnittstelle (ABI) zwischen Node.js-Versionen und verschiedenen Compilerstufen gewährleistet. Die C++-API kann einfacher zu verwenden sein. Um die Verwendung von C++ zu unterstützen, verwendet Node.js ein C++-Wrapper-Modul namens node-addon-api, das eine inlinebare C++-API bereitstellt. Mit Node-Addon-API erstellte Binärdateien basieren auf der N-API-Schnittstelle, die auf von Node.js exportierten C-Funktionssymbolen basiert. Dies ist eine effizientere Möglichkeit, Code zum Schreiben von Aufrufen an N-API zu schreiben.

Informationen zur N-API von Node.js finden Sie unter: C/C++-Addons mit N-API

Das Folgende ist ein Beispiel für die Verwendung von Node-Addon-API.

Object obj = Object::New(env);
obj["foo"] = String::New(env, "bar");
Nach dem Login kopieren
napi_status status;
napi_value object, string;
status = napi_create_object(env, &object);
if (status != napi_ok) {
  napi_throw_error(env, ...);
  return;
}

status = napi_create_string_utf8(env, "bar", NAPI_AUTO_LENGTH, &string);
if (status != napi_ok) {
  napi_throw_error(env, ...);
  return;
}

status = napi_set_named_property(env, object, "foo", string);
if (status != napi_ok) {
  napi_throw_error(env, ...);
  return;
}
Nach dem Login kopieren

Diese aktualisierte N-API 7 ist die erste neue Version seit der vorherigen Hauptversion und bringt verwandte Inhalte zu ArrayBuffers.

npm 7

Node.js 15 wird mit der neuen Hauptversion von npm, npm 7, geliefert. npm 7 verfügt über viele neue Funktionen, darunter npm-Arbeitsbereiche und ein neues package-lock.json-Format. npm 7 bietet auch Unterstützung für die Datei „garn.lock“. Eine der großen Änderungen in npm 7 ist die Standardinstallation von Peer-Abhängigkeiten.

Unbehandelte Ablehnungen werden standardmäßig ausgelöst

Ab Node.js 15 wurde der Standardmodus von unhandledRejection in „werfen“ (früher „warn“) geändert. Wenn im Throw-Modus der unhandledRejection-Hook nicht gesetzt ist, wird unhandledRejection zu einer nicht abgefangenen Ausnahme ausgelöst. Benutzer mit einem unhandledRejection-Hook sollten keine Verhaltensänderung bemerken und können weiterhin das Prozessflag --unhandled-rejections=mode verwenden, um den Modus zu wechseln.

Viele frühere Versionen von Node.js gaben standardmäßig UnhandledPromiseRejectionWarning aus, und gemäß den Ergebnissen der Umfrage „Node.js User Insights: Unhandled Promise Rejections“ stimmte der TSC von Node.js zu, den Modus auf „Auswerfen“ umzustellen.

QUIC

QUIC ist ein von Google entwickeltes UDP-basiertes Internet-Transportschichtprotokoll mit geringer Latenz. Es ist das grundlegende Transportprotokoll von HTTP/3. Darüber hinaus hielt die International Internet Engineering Task Force (IETF) im November 2016 das erste Treffen der QUIC-Arbeitsgruppe ab, das große Aufmerksamkeit in der Branche erregte, was bedeutete, dass QUIC einen wichtigen Schritt auf dem Weg zu einem Transportschichtprotokoll der neuen Generation machte. QUIC verfügt mittlerweile über integrierte TLS 1.3-Sicherheit, Flusskontrolle, Fehlerkorrektur, Verbindungsmigration und Multiplexing.

Node.js 15 bietet experimentelle Unterstützung für QUIC, die durch Kompilieren von Node.js mit dem Konfigurationsflag --experimental-quic aktiviert werden kann. Das Core-Net-Modul stellt beispielsweise eine Node.js-QUIC-Implementierung mit dem folgenden Code bereit.

const { createQuicSocket } = require('net');
Nach dem Login kopieren
'use strict';

const key = getTLSKeySomehow();
const cert = getTLSCertSomehow();

const { createQuicSocket } = require('net');

// Create the QUIC UDP IPv4 socket bound to local IP port 1234
const socket = createQuicSocket({ endpoint: { port: 1234 } });

socket.on('session', async (session) => {
  // A new server side session has been created!

  // The peer opened a new stream!
  session.on('stream', (stream) => {
    // Let's say hello
    stream.end('Hello World');

    // Let's see what the peer has to say...
    stream.setEncoding('utf8');
    stream.on('data', console.log);
    stream.on('end', () => console.log('stream ended'));
  });

  const uni = await session.openStream({ halfOpen: true });
  uni.write('hi ');
  uni.end('from the server!');
});

// Tell the socket to operate as a server using the given
// key and certificate to secure new connections, using
// the fictional 'hello' application protocol.
(async function() {
  await socket.listen({ key, cert, alpn: 'hello' });
  console.log('The socket is listening for sessions!');
})();
Nach dem Login kopieren

Weitere Informationen zu QUIC finden Sie im folgenden Dokument: QUIC.

V8 8.6

Die V8-JavaScript-Engine wurde auf V8 8.6 aktualisiert (V8 8.4 ist die neueste Version in Node.js 14). Zusätzlich zu Leistungsoptimierungen und -verbesserungen bringt das V8-Update die folgenden Sprachfunktionen:

Promise.any()——MDN

Promise.any() 接收一个Promise可迭代对象,只要其中的一个 promise 成功,就返回那个已经成功的 promise 。如果可迭代对象中没有一个 promise 成功(即所有的 promises 都失败/拒绝),就返回一个失败的 promise 和AggregateError类型的实例,它是 Error 的一个子类,用于把单一的错误集合在一起。

Promise.any()的参考文档如下所示:Promise.any()

AggregateError——MDN

AggregateError主要用于操作报告多个错误被抛出的场景,语法格式如下:

new AggregateError(errors[, message])
Nach dem Login kopieren

捕获一个AggregateError的示例代码如下:

Promise.any([
  Promise.reject(new Error("some error")),
]).catch(e => {
  console.log(e instanceof AggregateError); // true
  console.log(e.message);                   // "All Promises rejected"
  console.log(e.name);                      // "AggregateError"
  console.log(e.errors);                    // [ Error: "some error" ]
});
Nach dem Login kopieren

创建一个AggregateError的示例代码如下:

try {
  throw new AggregateError([
    new Error("some error"),
  ], 'Hello');
} catch (e) {
  console.log(e instanceof AggregateError); // true
  console.log(e.message);                   // "Hello"
  console.log(e.name);                      // "AggregateError"
  console.log(e.errors);                    // [ Error: "some error" ]
}
Nach dem Login kopieren

详细参考文档:AggregateError

String.prototype.replaceAll()——MDN

replaceAll() 方法是返回一个新字符串,新字符串所有满足 pattern 的部分都已被replacement 替换。pattern可以是一个字符串或一个 RegExp, replacement可以是一个字符串或一个在每次匹配被调用的函数。

const p = 'The quick brown fox jumps over the lazy dog. If the dog reacted, was it really lazy?';

const regex = /dog/gi;

console.log(p.replaceAll(regex, 'ferret'));
// expected output: "The quick brown fox jumps over the lazy ferret. If the ferret reacted, was it really lazy?"

console.log(p.replaceAll('dog', 'monkey'));
// expected output: "The quick brown fox jumps over the lazy monkey. If the monkey reacted, was it really lazy?"
Nach dem Login kopieren

详细内容参考:String.prototype.replaceAll()

安利升级

另外,随着 Node.js 15 新版本的发布!官方希望开发者尽快的进行升级,并将遇到的问题反馈就给官方,。当然,开发者还可以使用 Node.js 15 测试你的应用程序和模块,以确保你的项目与最新的 Node.js 特性和更改兼容。

并且,Node.js官方也开始计划升级到 Node.js 14 ,它将在下周升级到 LTS,支持会持续到直到 2023 年 4 月。还要注意的是,Node.js 10 将于 2021 年 4 月结束生命周期。因此,如果你仍在使用 Node.js 10,我们建议你开始计划升级。

原文链接:https://medium.com/@nodejs/node-js-v15-0-0-is-here-deb00750f278

更多编程相关知识,请访问:编程入门!!

Das obige ist der detaillierte Inhalt vonDie offizielle Version von Node.js 15 ist veröffentlicht und wird Node.js 14 als aktuelle stabile Version ersetzen.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP und Vue: eine perfekte Kombination von Front-End-Entwicklungstools PHP und Vue: eine perfekte Kombination von Front-End-Entwicklungstools Mar 16, 2024 pm 12:09 PM

PHP und Vue: eine perfekte Kombination von Front-End-Entwicklungstools In der heutigen Zeit der rasanten Entwicklung des Internets ist die Front-End-Entwicklung immer wichtiger geworden. Da Benutzer immer höhere Anforderungen an das Erlebnis von Websites und Anwendungen stellen, müssen Frontend-Entwickler effizientere und flexiblere Tools verwenden, um reaktionsfähige und interaktive Schnittstellen zu erstellen. Als zwei wichtige Technologien im Bereich der Front-End-Entwicklung können PHP und Vue.js in Kombination als perfekte Waffe bezeichnet werden. In diesem Artikel geht es um die Kombination von PHP und Vue sowie um detaillierte Codebeispiele, die den Lesern helfen sollen, diese beiden besser zu verstehen und anzuwenden

Häufig gestellte Fragen von Front-End-Interviewern Häufig gestellte Fragen von Front-End-Interviewern Mar 19, 2024 pm 02:24 PM

In Front-End-Entwicklungsinterviews decken häufige Fragen ein breites Themenspektrum ab, darunter HTML/CSS-Grundlagen, JavaScript-Grundlagen, Frameworks und Bibliotheken, Projekterfahrung, Algorithmen und Datenstrukturen, Leistungsoptimierung, domänenübergreifende Anfragen, Front-End-Engineering, Designmuster sowie neue Technologien und Trends. Interviewerfragen sollen die technischen Fähigkeiten, die Projekterfahrung und das Verständnis des Kandidaten für Branchentrends beurteilen. Daher sollten Kandidaten in diesen Bereichen umfassend vorbereitet sein, um ihre Fähigkeiten und Fachkenntnisse unter Beweis zu stellen.

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Jan 05, 2024 pm 06:08 PM

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

Ist Django Front-End oder Back-End? Hör zu! Ist Django Front-End oder Back-End? Hör zu! Jan 19, 2024 am 08:37 AM

Django ist ein in Python geschriebenes Webanwendungs-Framework, das Wert auf schnelle Entwicklung und saubere Methoden legt. Obwohl Django ein Web-Framework ist, müssen Sie zur Beantwortung der Frage, ob Django ein Front-End oder ein Back-End ist, ein tiefes Verständnis der Konzepte von Front-End und Back-End haben. Das Front-End bezieht sich auf die Schnittstelle, mit der Benutzer direkt interagieren, und das Back-End bezieht sich auf serverseitige Programme. Sie interagieren mit Daten über das HTTP-Protokoll. Wenn das Front-End und das Back-End getrennt sind, können die Front-End- und Back-End-Programme unabhängig voneinander entwickelt werden, um Geschäftslogik bzw. interaktive Effekte sowie den Datenaustausch zu implementieren.

Erkundung der Front-End-Technologie der Go-Sprache: eine neue Vision für die Front-End-Entwicklung Erkundung der Front-End-Technologie der Go-Sprache: eine neue Vision für die Front-End-Entwicklung Mar 28, 2024 pm 01:06 PM

Als schnelle und effiziente Programmiersprache erfreut sich Go im Bereich der Backend-Entwicklung großer Beliebtheit. Allerdings assoziieren nur wenige Menschen die Go-Sprache mit der Front-End-Entwicklung. Tatsächlich kann die Verwendung der Go-Sprache für die Front-End-Entwicklung nicht nur die Effizienz verbessern, sondern Entwicklern auch neue Horizonte eröffnen. In diesem Artikel wird die Möglichkeit der Verwendung der Go-Sprache für die Front-End-Entwicklung untersucht und spezifische Codebeispiele bereitgestellt, um den Lesern ein besseres Verständnis dieses Bereichs zu erleichtern. In der traditionellen Frontend-Entwicklung werden häufig JavaScript, HTML und CSS zum Erstellen von Benutzeroberflächen verwendet

Kombination von Golang- und Front-End-Technologie: Entdecken Sie, welche Rolle Golang im Front-End-Bereich spielt Kombination von Golang- und Front-End-Technologie: Entdecken Sie, welche Rolle Golang im Front-End-Bereich spielt Mar 19, 2024 pm 06:15 PM

Kombination von Golang und Front-End-Technologie: Um zu untersuchen, welche Rolle Golang im Front-End-Bereich spielt, sind spezifische Codebeispiele erforderlich. Mit der rasanten Entwicklung des Internets und mobiler Anwendungen ist die Front-End-Technologie immer wichtiger geworden. Auch in diesem Bereich kann Golang als leistungsstarke Back-End-Programmiersprache eine wichtige Rolle spielen. In diesem Artikel wird untersucht, wie Golang mit Front-End-Technologie kombiniert wird, und sein Potenzial im Front-End-Bereich anhand spezifischer Codebeispiele demonstriert. Die Rolle von Golang im Front-End-Bereich ist effizient, prägnant und leicht zu erlernen

So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript Jan 05, 2024 pm 01:37 PM

Einführung in die Methode zum Abrufen des HTTP-Statuscodes in JavaScript: Bei der Front-End-Entwicklung müssen wir uns häufig mit der Interaktion mit der Back-End-Schnittstelle befassen, und der HTTP-Statuscode ist ein sehr wichtiger Teil davon. Das Verstehen und Abrufen von HTTP-Statuscodes hilft uns, die von der Schnittstelle zurückgegebenen Daten besser zu verarbeiten. In diesem Artikel wird erläutert, wie Sie mithilfe von JavaScript HTTP-Statuscodes erhalten, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist ein HTTP-Statuscode? HTTP-Statuscode bedeutet, dass der Dienst den Dienst anfordert, wenn er eine Anfrage an den Server initiiert

Django: Ein magisches Framework, das sowohl Front-End- als auch Back-End-Entwicklung bewältigen kann! Django: Ein magisches Framework, das sowohl Front-End- als auch Back-End-Entwicklung bewältigen kann! Jan 19, 2024 am 08:52 AM

Django: Ein magisches Framework, das sowohl Front-End- als auch Back-End-Entwicklung bewältigen kann! Django ist ein effizientes und skalierbares Webanwendungs-Framework. Es unterstützt mehrere Webentwicklungsmodelle, einschließlich MVC und MTV, und kann problemlos hochwertige Webanwendungen entwickeln. Django unterstützt nicht nur die Back-End-Entwicklung, sondern kann auch schnell Front-End-Schnittstellen erstellen und durch die Vorlagensprache eine flexible Ansichtsanzeige erreichen. Django kombiniert Front-End-Entwicklung und Back-End-Entwicklung zu einer nahtlosen Integration, sodass sich Entwickler nicht auf das Lernen spezialisieren müssen

See all articles