一个简单的事件 分为 5 步:
1: 引入 event 内置模块
const EventEmitter = require("events");
2: 生成一个 事件类继承于 event 模块;
class CreateEvent extends EventEmitter{
}
3: 实例化这个模块为具体事件 ;
const ce = new CreateEvent();
4; 监听这个事件 ;
ce.on("test",()=>{
console.log("this is a test ")
})
5触发这个事件 ;
setInterval(()=>{
ce.emit("test")
},5000)
可以使用once 方法取代 on方法 这样使得事件 只触发一次;
ce.once("test",()=>{
console.log("this is a test ")
})
event的 EventEmitter 的error 报错 ;
事实上NodeJS里程确实有“脆弱”的一面,单线程的某处产生了“未处理的”异常确实会导致整个Node.JS的崩溃退出;
const myEmitter = new MyEmitter();
myEmitter.on('error', (err) => {
console.error('有错误');
});
myEmitter.emit('error', new Error('whoops!'));
even 中的事件 的移除
const EventEmitter = require("events");
class EventEmitter1 extends EventEmitter{
}
var e = new EventEmitter1();
function a(){
console.log('aaaa');
}
function b(){
console.log('bbbb');
}
e.on('data',a);
e.on('data',b);
e.emit('data',function () {
//移除data 事件 下的a函数
e.removeListener("data",a);
//移除data 事件 下的b函数
e.removeListener("data",b);
//移除data 事件下的全部函数
e.removeAllListeners("data");
});