node events事件循环

引入event模块:

/*引入模块方式一*/
//引入events模块
var events = require('events');
//创建eventEmitter
var eventEmitter = new  events.EventEmitter();


/*引入模块方式二*/
var EventEmitter = require('events').EventEmitter;
var event = new  EventEmitter();
event.on('some_event',function(){
    console.log('some_event事件触发');
});
setTimeout(function(){
    event.emit('some_event');
},1000);

一个node事件循环的入门例子:

// 引入events模块
var events = require("events");
// 创建 eventEmitter 对象
var eventEmitter = new events.EventEmitter();
//绑定事件及事件的处理程序
var connectHandler = function connected () {
    console.log('连接成功。');
    //触发事件
    eventEmitter.emit('data_received');
}

//绑定事件及事件的处理程序
eventEmitter.on('connection',connectHandler);

//使用匿名函数绑定data_received事件
eventEmitter.on('data_received',function () {
    console.log('数据接收成功。');
});

//触发connection事件
eventEmitter.emit('connection');
console.log('程序执行完毕。');

打印结果:

连接成功。
数据接收成功。
程序执行完毕

参数的传递:

/*event参数*/
var EventEmitter = require('events').EventEmitter;
var event = new  EventEmitter();
event.on('someEvent',function(arg1,arg2){
    console.log('listener1',arg1,arg2);
});
event.on('someEvent', function(arg1, arg2) {
    console.log('listener2', arg1, arg2);
});
event.emit('someEvent','参数1','参数2');

// addListener

var events = require('events');
var eventEmitter = new events.EventEmitter();

// 监听器 #1
var listener1 = function listener1() {
    console.log('监听器 listener1 执行。');
}
// 监听器 #2
var listener2 = function listener2() {
    console.log('监听器 listener2 执行。');
}
// 绑定 connection 事件,处理函数为 listener1
eventEmitter.addListener('connection',listener1);
// 绑定 connection 事件,处理函数为 listener2
eventEmitter.on('connection', listener2);

var eventListeners = require('events').EventEmitter.listenerCount(eventEmitter,'connection');
console.log(eventListeners + " 个监听器监听连接事件。");

// 处理 connection 事件
eventEmitter.emit('connection');

// 移除监绑定的 listener1 函数
eventEmitter.removeListener('connection', listener1);
console.log("listener1 不再受监听。");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值