1 /** 2 * Created by xiwu.xxw on 2015/7/22. 3 */ 4 /** 5 * EventEmitter 的每个事件由一个事件名和若干个参数组成, 6 * 事件名是一个字符串,通常表达一定的语义。 7 * 对于每个事件,EventEmitter 支持 若干个事件监听器。 8 * 当事件发射时,注册到这个事件的事件监听器被依次调用, 9 * 事件参数作 为回调函数参数传递。 10 * @type {*|EventEmitter} 11 */ 12 //NodeJS的事件机制有点类似于QT中的信号与槽机制 13 //加载事件模块,获取EventEmitter类 14 var EventEmitter=require('events').EventEmitter; 15 //获取事件实例 16 var event=new EventEmitter(); 17 //注册一个myevnet事件监听器 18 event.on('myevent',function(name,date){ 19 console.log('hello '+name+' time:'+date); 20 console.log('execute my event 1...'); 21 }); 22 event.on('myevent',function(){ 23 console.log('execute my event 2...'); 24 }); 25 //注册一个只执行一次的myevent事件监听器 26 event.once('myevent',function(){ 27 console.log('execute my event 3...'); 28 }); 29 30 //设置一个定时器,2000毫秒后触发myevnet事件 31 setTimeout(function(){ 32 //触发myevent事件,并传递参数nodejs和当前时间 33 event.emit('myevent','nodejs',Date.now()); 34 },2000);
运行效果: