Node.js使用大量事件,这也是为什么Node.js相对于其他类似技术比较快的原因之一。当Node启动其服务器,就可以简单地初始化其变量,声明函数,然后等待事件的发生。
虽然事件似乎类似于回调。不同之处在于当回调函数被调用异步函数返回结果,其中的事件处理工作在观察者模式。监听事件函数作为观察者。每当一个事件被解雇,其监听函数开始执行。Node.js有多个内置的事件。 主要扮演者是 EventEmitter,可使用以下语法导入。
var events = require('events');//添加事件模块的引用
//create an eventEmitter object创建事件发射器对象
var eventEmitter = new events.EventEmitter();
//create a function connected which is to be executed
//when 'connection' event occurs
//创建一个连接的要执行的函数
//“connection”事件发生时
var connected = function connected() {
console.log('connection succesful.');
// fire the data_received event 启动数据接收事件
eventEmitter.emit('data_received');
}
// bind the connection event with the connected function将连接事件与连接的函数绑定
eventEmitter.on('connection', connected);
// bind the data_received event with the anonymous function
eventEmitter.on('data_received', function(){
console.log('data received succesfully.');
});
// fire the connection event
eventEmitter.emit('connection');
console.log("Program Ended.");//
eventEmitter.on('connection', connected);将连接事件connection与 connected函数绑定,当执行eventEmitter.emit('connection');的时候触发事件执行与之对应的函数