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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!