events 
基本使用 
js
// events模块中的事件总线
const EventEmitter = require('events')
// 创建EventEmitter的实例
const emitter = new EventEmitter()
// 监听事件
emitter.on('why', () => {
  console.log('监听why的事件')
})
// 发射事件
setTimeout(() => {
  emitter.emit('why')
}, 2000)取消事件 
js
// events模块中的事件总线
const EventEmitter = require('events')
// 创建EventEmitter的实例
const emitter = new EventEmitter()
// 监听事件
function handleWhyFn() {
  console.log('监听why的事件')
}
emitter.on('why', handleWhyFn)
// 发射事件
setTimeout(() => {
  emitter.emit('why')
  // 取消事件监听
  emitter.off('why', handleWhyFn)
  setTimeout(() => {
    emitter.emit('why')
  }, 1000)
}, 2000)传递参数 
js
// events模块中的事件总线
const EventEmitter = require('events')
// 创建EventEmitter的实例
const emitter = new EventEmitter()
// 监听事件
function handleWhyFn(name, age, height) {
  console.log('监听why的事件', name, age, height)
}
emitter.on('why', handleWhyFn)
// 发射事件
setTimeout(() => {
  emitter.emit('why', 'coderwhy', 18, 1.88)
  // 取消事件监听
  emitter.off('why', handleWhyFn)
  setTimeout(() => {
    emitter.emit('why')
  }, 1000)
}, 2000)