Node EventEmmiter 事件触发
来源:https://github.com/Yuxin-Alpha/Frontend-Learning/issues/28
所有能触发事件的对象都是 EventEmitter 类的实例,Node 中的 events 模块用于事件发射以及监听,是 Node 实现发布订阅模式的典型例子。
const EventEmmiter = require('events') const util = require('util') function Bell() { EventEmmiter.call(this); // 继承私有属性 } // 原型继承 // Object.setPrototypeOf() util.inherits(Bell, EventEmmiter) function studentInClassroom() { console.log('学生进教室'); } function teacherInClassroom() { console.log('老师进教室'); } // Bell 继承了事件发射器的类之后就拥有了其原型上面的所有方法 let bell = new Bell(); bell.on('响', studentInClassroom); bell.on('响', teacherInClassroom); bell.emit('响')
一个事件发射器对象,通过 on()
函数来监听, emit()
函数来触发事件,触发了之后使 on()
函数后面中的回调函数进入事件队列等待主线程执行。
EventEmmiter 对象除了上述两个方法之外还有下列方法:
addListener(event, listener)
: 对指定事件绑定指定处理函数once(event, listener)
: 对指定事件只执行一次的事件处理函数removeListener(event, listener)
: 对指定事件解除事件事件处理函数
下面笔者自己一下手撕这些 API:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

上一篇: CentOS 7 IP 配置
下一篇: 不要相信一个熬夜的人说的每一句话
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论