nodejs事件编程详解
nodejs事件的例子,先说下事件
Node里面的许多对象都会分发事件:一个net.Server对象会在每次有新连接时分发一个事件, 一个fs.readStream对象会在文件被打开的时候发出一个事件。 所有这些产生事件的对象都是 events.EventEmitter 的实例。 你可以通过require("events");来访问该模块
//引入events模块 var events = require("events"); //实例化events.EventEmitter对象 var event = new events.EventEmitter();
//添加自定义事件 event.on("myevent",function(){ console.log("我定义的事件"); })
//使用事件 event.emit("myevent");
下面一些事件方法
删除一个事件 event.removeListener("myevent",function(){ console.log("现在删除这个once_event事件"); }); //删除所有事件,或者删除某些事件 event.removeAllListeners("myevent"); //添加一个一次性事件,事件被触发后就被删除 event.once("once_event",function(){ console.log("这是个一次性事件,事件被触发后就被删除"); }); //触发一次性事件 event.emit("once_event"); //返回指定事件的listener数组 console.log(event.listeners('myevent'));
下面给我们的对象添加事件
var util = require("util"); var events = require("events"); //让MyEvent继承event.EventEmitter,使用的是util.inherits这个工具来继承 function MyEvent() { events.EventEmitter.call(this); } util.inherits(MyEvent, events.EventEmitter); //MyEvent类的write方法触发了data这个事件 MyEvent.prototype.write = function(data) { this.emit("data", data);//触发DATA事件 return this;//返回对象,方便链式调用 } //实例化MyEvent对象, var myevent = new MyEvent(); //监听myevent的data事件 myevent.on("data",function(data){ console.log("事件的回调:"+data); }); //用write方法触发data事件 myevent.write("一个操作后,触发了MyEvent对象的data事件");
本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
转载本站原创文章,请注明出处,并保留原始链接、图片水印。
本站是一个以用户分享为主的开源技术平台,欢迎各类分享!