Heim >Web-Frontend >js-Tutorial >Informationen zur Verwendung der Node.js-Zeitschleife

Informationen zur Verwendung der Node.js-Zeitschleife

jacklove
jackloveOriginal
2018-05-07 09:31:341632Durchsuche

Node.js hat eine bessere Leistung und wird daher häufig verwendet. In diesem Artikel wird es daher ausführlich erläutert.

Node.js ist eine Single-Process- und Single-Threaded-Anwendung, unterstützt jedoch Parallelität durch Ereignisse und Rückrufe, sodass die Leistung sehr hoch ist.

Jede API in Node.js ist asynchron und wird als unabhängiger Thread ausgeführt, verwendet asynchrone Funktionsaufrufe und verarbeitet Parallelität.

Grundsätzlich werden alle Ereignismechanismen in Node.js mithilfe des Beobachtermusters im Entwurfsmuster implementiert.

Der einzelne Thread von Node.j ähnelt dem Eintritt in eine while(true)-Ereignisschleife, bis kein Ereignisbeobachter mehr auftritt. Wenn ein Ereignis auftritt, wird die Callback-Funktion aufgerufen

Ereignisgesteuertes Programm

Node.js verwendet das ereignisgesteuerte Modell. Wenn der Webserver eine Anfrage empfängt, schließt er diese, verarbeitet sie und bedient dann die nächste Webanfrage.

Wenn diese Anfrage abgeschlossen ist, wird sie wieder in die Verarbeitungswarteschlange gestellt, und wenn der Anfang der Warteschlange erreicht ist, wird das Ergebnis an den Benutzer zurückgegeben.

Dieses Modell ist sehr effizient und skalierbar, da der Webserver immer Anfragen akzeptiert, ohne auf Lese- oder Schreibvorgänge warten zu müssen. (Dies wird auch als nicht blockierende E/A oder ereignisgesteuerte E/A bezeichnet)

Im ereignisgesteuerten Modell wird eine Hauptschleife generiert, um auf Ereignisse zu warten, und eine Rückruffunktion wird ausgelöst, wenn ein Ereignis erkannt wird.


So wird der gesamte ereignisgesteuerte Prozess umgesetzt, was sehr einfach ist. Ähnlich wie beim Beobachtermuster entspricht das Ereignis einem Subjekt (Subject) und alle für dieses Ereignis registrierten Handlerfunktionen entsprechen Beobachtern (Observer).

Node.js verfügt über mehrere integrierte Ereignisse, indem wir das Ereignismodul einführen und die EventEmitter-Klasse instanziieren, wie unten gezeigt:

// 引入 events 模块var events = require('events');// 创建 eventEmitter 对象var eventEmitter = new events.EventEmitter();
以下程序绑定事件处理程序:
// 绑定事件及事件的处理程序eventEmitter.on('eventName', eventHandler);
我们可以通过程序触发事件:
// 触发事件eventEmitter.emit('eventName');

Instance

Erstellen Sie die Datei main.js. Der Code lautet wie folgt:

// 引入 events 模块var events = require('events');// 创建 eventEmitter 对象var eventEmitter = new events.EventEmitter();// 创建事件处理程序var connectHandler = function connected() {
   console.log('连接成功。');
  
   // 触发 data_received 事件 
   eventEmitter.emit('data_received');}// 绑定 connection 事件处理程序eventEmitter.on('connection', connectHandler);
 // 使用匿名函数绑定 data_received 事件eventEmitter.on('data_received', function(){
   console.log('数据接收成功。');});// 触发 connection 事件 eventEmitter.emit('connection');console.log("程序执行完毕。");

Als nächstes führen wir den obigen Code aus:

$ node main.js-Verbindung ist erfolgreich. Daten erfolgreich empfangen. Die Programmausführung ist abgeschlossen.


Wie funktionieren Node-Anwendungen?

In Node-Anwendungen verwenden Funktionen, die asynchrone Vorgänge ausführen, eine Rückruffunktion als letzten Parameter, und die Rückruffunktion empfängt ein Fehlerobjekt als ersten Parameter.

Als nächstes schauen wir uns das vorherige Beispiel noch einmal an und erstellen eine input.txt. Der Inhalt der Datei lautet wie folgt:

Offizielle Website-Adresse des Rookie-Tutorials: www.runoob.com


Erstellen Sie die main.js-Datei mit dem folgenden Code:

var fs = require("fs");fs.readFile('input.txt', function (err, data) {
   if (err){
      console.log(err.stack);
      return;
   }
   console.log(data.toString());});console.log("程序执行完毕");

Das Obige stellt die Verwendung von Node.js im Detail vor. Wenn Sie mehr zu diesem Thema wissen möchten, achten Sie bitte darauf zur chinesischen PHP-Website.

Verwandte Empfehlungen:


Detaillierte Erläuterung des Prinzips der Port-Wiederverwendung in Node.Js

Was sind die Registrierungs-E-Mails? Aktivierungsmethoden für die Node.js-Methode

Wie Node.Js die Bitcoin-Adresse implementiert

Das obige ist der detaillierte Inhalt vonInformationen zur Verwendung der Node.js-Zeitschleife. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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