node.js第二天
阿新 • • 發佈:2018-12-10
EventEmitter
一:引入模板
// 引入 events 模組
var events = require('events');
// 建立 eventEmitter 物件
var eventEmitter = new events.EventEmitter();
二建立eventEmitter例項
一個eventEmitter可以繫結許多監聽器
eventEmitter.on("someEvent",function(){ console.log("event1"); }) eventEmitter.on("someEvent",function(){ console.log("event2"); })
var eventEmitter=new event.eventEmitter();
三繫結事件
1 on(event, listener)為指定事件註冊一個監聽器,接受一個字串 event 和一個回撥函式。
2once(event, listener) 為指定事件註冊一個單次監聽器,即 監聽器最多隻會觸發一次,觸發後立刻解除該監聽器。
/*eventEmitter.on("functionName",callFunction)*/
eventEmitter.on("someEvent",function(){
console.log("event");
})
執行函式
/*eventEmitter.emit("functionName")*/ //這裡的函式名字和上面繫結的函式名字一樣 eventEmitter.emit("smoeEvent")
新增監聽器
addListener(event, listener) **
移除監聽器
addListener(event, listener) **
具體應用
var events = require('events'); var events = require('events'); //監聽事件1 var eventEmitter = new events.EventEmitter(); function listener1() { console.log("listener1"); } //監聽事件2 function listener2() { console.log("listener2"); } //新增監聽器 eventEmitter.addListener("connect", listener1); eventEmitter.on("connect", listener2); //檢測有多少個監聽器 var eventEmitters = eventEmitter.listenerCount("connect"); console.log(eventEmitters + "個"); //2 eventEmitter.emit("connect"); //移除監聽器 eventEmitter.removeListener("connect", listener1); console.log("listener1結束!!"); eventEmitter.emit("connect"); eventEmitters = eventEmitter.listenerCount("connect"); console.log(eventEmitters + "個"); //1
error 事件
遇到錯誤時會觸發error