Dieser Artikel stellt hauptsächlich die detaillierte Erklärung und Beispiele der Node.js-Ereignisschleife vor. Wir können Ereignisse binden und überwachen, indem wir die EventEmitter-Klasse instanziieren siehe
Node.js-Ereignisschleifendetails und Beispiele
Node.js ist eine Single-Prozess-Single-Thread-Anwendung, die jedoch unterstützt wird Parallelität durch Ereignisse und Rückrufe, daher ist die Leistung sehr hoch.
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, rufen Sie einfach den Rückruf auf Funktion.
Node.js verfügt über mehrere integrierte Ereignisse, indem wir das Ereignismodul einführen und die EventEmitter-Klasse instanziieren.
// 引入 events 模块 var events = require('events'); // 创建 eventEmitter 对象 var eventEmitter = new events.EventEmitter(); // 创建事件处理程序 var connectHandler = function connected() { console.log(1); // 触发 data_received 事件 eventEmitter.emit('data_received'); } // 绑定 connection 事件处理程序 eventEmitter.on('connection', connectHandler); // 使用匿名函数绑定 data_received 事件 eventEmitter.on('data_received', function(){ console.log(2); }); // 触发 connection 事件 eventEmitter.emit('connection'); console.log(3);
In einer Knotenanwendung verwendet die Funktion, die eine asynchrone Operation ausführt, die Rückruffunktion als letzten Parameter und die Rückruffunktion empfängt das Fehlerobjekt als ersten Parameter.
var fs = require("fs") fs.readFile('input.txt',function(err,data){ if(err) console.log(err) else console.log(data.toString()) }) console.log("程序执行完成")
Das obige ist der detaillierte Inhalt vonTutorial zur Node.js-Ereignisschleife. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!