一.Node.js内置事件,通过引入events模块,实例化EventEmitter类绑定监听事件。
//引入events模块
var events = require('events');
//实例化eventEmitter对象
var eventEmitter = new events.EventEmitter();
//匿名函数绑定data_received事件
eventEmitter.on('data_received', function(){
console.log('数据接收成功。');
});
//创建事件处理程序
var connectHandler = function connected() {
console.log('连接成功');
//触发data_recevied事件
eventEmitter.emit('data_received');
}
//绑定connection事件处理程序
eventEmitter.on('connection', connectHandler);
//触发connection事件
eventEmitter.emit('connection');
console.log('程序执行完毕');
1.Node.js EventEmitter类 事件触发与事件监听功能的封装
events模块只提供一个对象:events.EventEmitter
var events = require('events');
var eventEmitter = new events.EventEmitter();
//绑定事件
eventEmitter.on('some_event', function() {
console.log('some_event 事件触发');
});
setTimeout(function() {
//触发事件
eventEmitter.emit('some_event');
}, 1000);
当事件触发时,事件监听器会依次被调用,事件参数作为回调参数传递。
eventEmitter.on('someEvent', function(arg1, arg2) {
console.log('listener1', arg1, arg2);
});
eventEmitter.on('someEvent', function(arg1, arg2) {
console.log('listener2', arg1, arg2);
})
eventEmitter.emit('someEvent', 'arg1参数', 'arg2参数');
输出结果:listener1 arg1参数 arg2参数
listener2 arg1参数 arg2参数
2.EventEmitter具体介绍:
1.方法
addL