NodeJS中的事件

 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);

运行效果:

原文地址:https://www.cnblogs.com/cloudml/p/4667692.html