1. 程式人生 > >node.js第二天

node.js第二天

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