events_test.js 947 B

12345678910111213141516171819202122232425262728293031323334353637
  1. const EventEmitter = require('events')
  2. // 创建发射器
  3. const emitter = new EventEmitter();
  4. // 监听事件: on 和 addListener 作用一样
  5. emitter.on('click', (args) => {
  6. console.log(`listener1 clicked, args => ${args}`);
  7. })
  8. const listener2 = (arg1, arg2, arg3) => {
  9. console.log(`listener2 clicked, args =>`, arg1, arg2, arg3);
  10. };
  11. const listener3 = (args) => {
  12. console.log(`listener3 clicked, args => ${args}`);
  13. };
  14. emitter.on('click', listener2)
  15. emitter.once('click', listener3) // 只监听一次
  16. // 发送事件
  17. emitter.emit(`click`, 1, 2, 3, 4, 5);
  18. // 取消事件监听
  19. emitter.off(`click`, listener2);
  20. // 发送事件
  21. emitter.emit(`click`, 1, 2, 3, 4, 5);
  22. // 获取注册的事件
  23. console.log(emitter.eventNames()); // 获得所有事件的名称
  24. console.log(emitter.listenerCount(`click`)); // 获取事件绑定的回调个数
  25. console.log(emitter.listeners('click')); // 获取所有回调函数对象