博客
关于我
白话讲讲EventEmitter的实现
阅读量:384 次
发布时间:2019-03-05

本文共 522 字,大约阅读时间需要 1 分钟。

白话讲讲EventEmitter的实现

首先我们要知道什么是EventEmitter?

简单来说就是对事件触发与事件监听器功能的封装。

EventEmitter有什么API是需要我们去实现的

  • on 对事件进行监听
  • emit进行触发
  • once是指只监听一次
  • alloff是关掉所有消息队列中的监听
  • off关掉相应的监听事件

怎么实现

在这里插入图片描述

构造函数

首先定义一个存放消息队列的对象,每个消息队列都有一个名字eventname,这个消息队列可以承载多个事件对象

每个事件对象有两个属性:listener(存放回调函数,也就是你要监听的事件),once(这个参数是为了只进行一次监听而设立的参数)

在这里插入图片描述

on监听函数

  1. 首先先判断有没有这个消息队列,没有的话创建一个新的消息队列,有的话进行for查找

  2. 判断传进来的参数

    在这里插入图片描述

once函数

监听事件的once属性是true

在这里插入图片描述

emit函数

  1. 找到监听的事件进行触发

  2. 这里需要注意的是当你找到你的监听事件,判断一下once属性,true进行撤掉当前监听事件

    在这里插入图片描述

off函数

  1. 找到监听事件在对应消息队列的下标,方便进行切割

在这里插入图片描述

alloff函数

  1. 直接判断有没有这个消息队列
  2. 清空消息队列或者清空对象

在这里插入图片描述

封装工具函数

搜索函数

在这里插入图片描述

判断类型函数

在这里插入图片描述

转载地址:http://cklg.baihongyu.com/

你可能感兴趣的文章
mysql中的rbs,SharePoint RBS:即使启用了RBS,内容数据库也在不断增长
查看>>
mysql中的undo log、redo log 、binlog大致概要
查看>>
Mysql中的using
查看>>
MySQL中的关键字深入比较:UNION vs UNION ALL
查看>>
mysql中的四大运算符种类汇总20多项,用了三天三夜来整理的,还不赶快收藏
查看>>
mysql中的字段如何选择合适的数据类型呢?
查看>>
MySQL中的字符集陷阱:为何避免使用UTF-8
查看>>
mysql中的数据导入与导出
查看>>
MySQL中的时间函数
查看>>
mysql中的约束
查看>>
MySQL中的表是什么?
查看>>
mysql中穿件函数时候delimiter的用法
查看>>
Mysql中索引的分类、增删改查与存储引擎对应关系
查看>>
Mysql中索引的最左前缀原则图文剖析(全)
查看>>
MySql中给视图添加注释怎么添加_默认不支持_可以这样取巧---MySql工作笔记002
查看>>
Mysql中获取所有表名以及表名带时间字符串使用BetweenAnd筛选区间范围
查看>>
Mysql中视图的使用以及常见运算符的使用示例和优先级
查看>>
Mysql中触发器的使用示例
查看>>
Mysql中设置只允许指定ip能连接访问(可视化工具的方式)
查看>>
mysql中还有窗口函数?这是什么东西?
查看>>