1. Basic (on)
// If the object as will the ability to integrate Related event EventEmitter const = EventEmitter the require ( 'Events') // integrated EventEmitter class class CustomEvent the extends EventEmitter { } // instantiate an object const CustomEvent new new CE = () // a binding event name ce.on ( 'Test', () => { the console.log ( 'the this Test IS A'); }) the setInterval (() => { ce.emit ( 'Test') }, 500)
Run effect is to continue the implementation of this is a test
2. pass some parameters, basic information
const EventEmitter = require('events') class CustomEvent extends EventEmitter{} const ce = new CustomEvent() ce.on('error',(err,time)=>{ console.log(err); console.log(time); }); ce.emit('error',new Error('oops!'),Date.now())
3. Do just once once (below even operate as before on, that is, once every 500 milliseconds, but after running it performed once only)
const EventEmitter = require('events') class CustomEvent extends EventEmitter{} const ce = new CustomEvent() ce.once('test',()=>{ console.log('test event'); }) setInterval(()=>{ ce.emit('test') },500)
4. Remove the work, bind a number of events in some scenarios need to be removed off (removeListener or removeAllListener)
const EventEmitter = require('events')
class CustomEvent extends EventEmitter{}
function fn1(){
console.log('fn1');
}
function fn2(){
console.log('fn2');
}
const ce = new CustomEvent() ce.on('test',fn1) ce.on('test',fn2) setInterval(()=>{ ce.emit('test') },500) setTimeout(()=>{ // ce.removeListener('test',fn2) // ce.removeListener('test',fn1) //移除所有事件名的事件 ce.removeAllListeners('test') },1500)