异步事件驱动架构
//这个变量名是 EventEmitter //注意是eventsssssssssss,不是event const EventEmitter = require('events'); //ES6 //继承EventEmitter class CustomEvent extends EventEmitter{ }; const ce = new CustomEvent(); //绑定监听函数 //函数名是test,内容是箭头函数 ce.on('test',()=>{ console.log('Hello World'); }); //定时器 //定时触发事件 setInterval(()=>{ ce.emit('test'); },1000);
移除相关的监听器
const ev = require('events');
//箭头函数是匿名函数
//要创建正式的函数必须这样
function fn1(){
console.log('fn1');
}
function fn2(){
console.log('fn2');
}
//看来变量名取ev也是可以的
class CustomEvent extends ev{};
const ce = new CustomEvent();
//一个test事件,可以绑定多个函数
ce.on('test',fn1);
ce.on('test',fn2);
//一般在函数作为参数的时候,才使用匿名函数
setInterval(()=>{
ce.emit('test');
},500);
//设定在多少秒时候移除函数
setTimeout(()=>{
ce.removeListener('test',fn2);
},1500);
处理错误函数
const ev = require('events');
class CustomEvent extends ev{};
const ce = new CustomEvent();
//绑定error事件
//我觉得这种匿名函数就很强,参数类型都不需要
ce.on('error',err=>{
console.log(err);
});
setTimeout(()=>{
ce.emit('error',new Error('oop!'));
},1000);
如果监听函数只使用一次,可以把on改成once