怎样如何实现EventEmit
怎样如何实现EventEmit
来源:网络
更新时间:不详
如果使用events库中的EventEmit,经过使用了解到EventEmit本质上是观察者模式的一种实现。
export default class EventEmitter {
constructor() {
this.event = {};
this.maxListerners = 10;
}
// 监听
on(type, listener) {
if (this.event[type]) {
if (this.event[type].length >= this.maxListerners) {
console.error('同一个监听器最多被十个对象监听,否则可能造成内存泄漏.\n');
return;
}
this.event[type].push(listener);
} else {
this.event[type] = [listener];
}
}
//发送监听
emit(type, ...rest) {
if (this.event[type]) {
this.event[type].map(fn => fn.apply(this, rest));
}
}
//移除监听器
removeListener(type) {
if (this.event[type]) {
delete this.event[type];
console.log(this.event);
}
}
//移除所有的监听器
removeAllListener() {
this.event = {};
}
}代码调用如下
import EventEmit from './EventEmit';
let DeviceEventEmit = new EventEmit();
DeviceEventEmit.on('event', (param1, param2) => {
console.log('DeviceEventEmit', param1, param2);
});
DeviceEventEmit.emit('event', 'param1', 'param2');
DeviceEventEmit.removeListener('event');浏览器console即可查看结果
最新更新
更多>>- B103三菱PLC通信基础及应用12-14
- Windows游戏编程大师技巧第二版
- Photoshop CS6完全自学教程(中文版)
- [从零开始学电路基础].刘建清.扫描版
- [从零开始学电路仿真Multisim与电路设计Protel技
- [从零开始学电气控制与PLC技术].刘建清.扫描版(1)
- [从零开始学电动机控制与维修技术].李建清.扫描版
- [从零开始学数字电子技术].李建清.扫描版
- [从零开始学CPLD和Verilog.HDL编程技术].李建清.
- 山东大学欧姆龙plc视频教程1-20
- 艺用人体造型图集视觉艺术的人体模特
- [说服力:工作型PPT该这样做] 张志.刘俊.包翔
- 《计算机组成原理》2018秋季B卷V1.0标准答案脱敏
- 《计算机组成原理》2017秋季A卷V1.1标准答案脱敏
- 2020秋季计算机组成原理试卷B(正题)答案脱敏
- 2019秋季计算机组成原理试卷A答案脱敏
- 工程设计题
- 教师使用--计算机组成原理实验报告模板.docx
- 教师使用--计算机组成原理实验常用问题.pdf
- 教师使用__头歌平台建立翻转课堂
- 简明电路分析基础李瀚逊
- 电路分析基础第四版课后习题答案
- 电路分析基础 (下册) (第4版)
- 电路分析基础 (上册) (第4版)
- ScarboroughFair斯卡布罗集市吉他谱
- MFC Windows程序设计(第2版)(2)
- JavaScript语言精粹(修订版)
- 《低压电工实用技术问答》(2)
- 《鸟哥的Linux私房菜》
- 计算机程序设计艺术 ( 第四卷)
- 计算机程序设计艺术(第二卷)
- 计算机程序设计艺术(第三卷)
- 计算机程序设计艺术(第一卷)
- 美国纽约摄影学院摄影教材(下册)
- 美国纽约摄影学院摄影教材(上册)
- Java核心知识
- Java核心基础
- Java 基础面试题总结
- Java 基础核心总结
- 第一行代码——Android
- Android第一行代码源码
- 火星时代-3ds Max&Sketchup室外建模火星课堂
- 火星时代-3ds Max&Sketchup室外建模火星课堂CD4
- 火星时代-3ds Max&Sketchup室外建模火星课堂CD3
- 火星时代-3ds Max&Sketchup室外建模火星课堂CD2
- 火星时代-3ds Max&Sketchup室外建模火星课堂CD1
- php和mysql web开发(第5版)完整源码
- PHP和MySQL WEb 5th
- Linux_UNIX系统编程手册(下)
- Linux_UNIX系统编程手册(上)
声明:本网站所资源均通过互联网收录,并提供大家免费学习使用,如果本站有侵犯权利人版权内容的请向本站投诉。
投诉邮箱:577982958@qq.com 一经核实,本站将立即删除相关收录作品。
© 2020 - 2026 www.JarlWeiJing.com 版权所有
