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.// 引入 events 模块var events = require('events');// 创建 eventEmitter 对象var eventEmitter = new events.EventEmitter(); 以下程序绑定事件处理程序: // 绑定事件及事件的处理程序eventEmitter.on('eventName', eventHandler); 我们可以通过程序触发事件: // 触发事件eventEmitter.emit('eventName');
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("程序执行完毕。");
var fs = require("fs");fs.readFile('input.txt', function (err, data) { if (err){ console.log(err.stack); return; } console.log(data.toString());});console.log("程序执行完毕");
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!