javascript 订阅事件和发布事件类
- 相对于 EventEmitter 这个库可以传 this,改变回调 this 指向
npm i js-events-emitter -S
const JsEventsEmitter= require('js-events-emitter')
// 或
import JsEventsEmitter from 'js-events-emitter'
const events = new JsEventsEmitter()
let _this = new Object()
events.on('custom-event', _this, callbackFunc, ['附加参数1', '附加参数2'])
events.emit('custom-event', ['附加参数3', '附加参数4'])
function callbackFunc(param1, param2, param3, param4) {
console.log(param1, param2, param3, param4) //'附加参数1', '附加参数2','附加参数3', '附加参数4'
console.log(this) // this === _this
}
- 详情: 订阅事件和发布事件
- 详情: 订阅事件
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
type | string |
事件名 | |
scope | * |
作用域 | |
callback | function |
回调 | |
[params] | array |
[] |
回调参数 |
- 详情: 订阅事件-回调只执行一次
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
type | string |
事件名 | |
scope | * |
作用域 | |
callback | function |
回调 | |
[params] | array |
[] |
回调参数 |
- 详情: 发布事件
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
type | string |
||
[params] | array |
[] |
附加到回调的参数 |
- 详情: 获取指定事件的监听器数组列表
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
type | string |
事件名 |
- 返回:
array
|undefined
- 返回列表
-
详情: 获取全部事件的全部监听者的列表
-
返回:
object
-
详情: 获取已经监听的事件名列表
-
返回:
array
- 事件名数组
- 详情: 添加到事件等待处理触发列表
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
type | string |
||
[listenerParams] | object |
{ callback: null, scope: this, params: null, isOnce: false } |
触发事件的参数 |
- 详情: 清除所有订阅
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
type | string,null |
事件名, 如果指定事件则移除该事件的所有监听器,如果不传则移除所有事件的所有监听器,并注销事件 |
- 详情: 清除对应的订阅
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
type | string |
事件名 | |
removeCallback | function |
监听器的回调函数 |