multi-events
简介
用来处理多个订阅事件和方法的订阅发布模块
安装
npm install multi-events
用法
初始化
const MultiEvent = ; const event = option;
option
修改默认event别名对象,可以不传递参数,按照默认配置。详情
属性
名称 | 场景 | 注意 |
---|---|---|
eventsCount | 获取当前实例订阅事件的数量 | 只读 |
eventKeyCount | 获取当前实例订阅事件名的数量 | 只读 |
方法
emit
触发单个或多个订阅事件
第一个参数是订阅事件名,当是多个事件订阅时,可以传入数组。
event event
on
订阅多个事件、监听触发多个方法,返回当前监听id,用于卸载方法。
注意,传入是单个订阅事件时,返回的是个Symbol对象;当传入多个订阅事件,返回的则是个对象。
const id1 = event; // 返回 { event1: Symbol(event1), event2: Symbol(event2) } const id2 = event; // Symbol(event1); const id3 = event; // { event1: Symbol(event1), event2: Symbol(event2) }
once
订阅事件只会触发一次就会被移除,后面再次emit将不再触发 具体使用方法和on方法一致
removeEvent
卸载当前订阅事件的所有方法,传入订阅事件名
如果仅仅是需要移除某个方法时候,可以考虑用removeEventFunction方法
event; // true or false event; // [ true, true ]
removeEventFunction
卸载单个订阅的方法,传入订阅事件的唯一id
在用于卸载的方法时候,需要用到on方法的返回值,虽然它会返回单个symbol或object类型,但是如果仅仅是需要移除当前on的订阅事件的话,直接将它传入该方法即可,不用关心它的类型
event; // 移除整个id1.event1、id1.event2监听事件 返回[ true, true ],内部会解析为event.removeEventFunction([ id1.event1, id1.event2 ]) event; // 返回[ true, true ],和上面表示一致 event; // 返回[ true, true, false ] event; // 只用传id2即可,因为本身就是symbol类型,返回 [ true, true ] event; // 返回[ true, true ]
event
通过emit函数调用,和普通订阅事件用法一致。
名称 | 场景 | callback |
---|---|---|
trigger | 当触发emit的时候触发,相同的事件只会触发一次 | Function(eventName, triggerParams) |
remove | 当事件或方法被移除的时候触发,包括:removeEvent,removeEventFunction | Function(eventName, [ EventSub ]) |
可以通过在初始化的MultiEvent
类的时候修改这些字段,例如:
const event = trigger: 'emitFn'event event event;