znu-event 一个简单的event emitter,无依赖,TypeScript、rollup、自动测试、一键发布到GitHub和NPM。
GitHub
NPM
如果帮助到了你,请给我一个star~ 💖,如果你发现bug,请尽情的在下方评论或者提issue。
安装
使用
1 2 3 4 5 6
| import EventEmitter from './znu-event'; const emitter = new EventEmitter(); emitter.on('add', data=>{ console.log(data) }); emitter.emit('add', 1);
|
方法
on(eventName, listener)
绑定事件
名称 |
类型 |
数据类型 |
是否必填 |
说明 |
eventName |
参数 |
String/Symbol |
是 |
事件名称 |
listener |
参数 |
Function |
是 |
对应的回调函数 |
emitter |
返回值 |
EventEmitter |
— |
实例 |
off(eventName, listener)
解除绑定, 如果不填写listener
, 那么eventName
对应的listener
都会被移除.
名称 |
类型 |
数据类型 |
是否必填 |
说明 |
eventName |
参数 |
String/Symbol |
是 |
事件名称 |
listener |
参数 |
Function |
是 |
对应的回调函数 |
emitter |
返回值 |
EventEmitter |
— |
实例 |
1 2 3 4 5 6 7 8
| const callback = data=>{ alert(data) }; emitter.on('add', callback);
emitter.off('add', callback);
emitter.emit('add', 1);
|
once(eventName, listener)
绑定事件, 只触发一次
名称 |
类型 |
数据类型 |
是否必填 |
说明 |
eventName |
参数 |
String/Symbol |
是 |
事件名称 |
listener |
参数 |
Function |
是 |
对应的回调函数 |
emitter |
返回值 |
EventEmitter |
— |
实例 |
1 2 3 4 5 6 7 8
| const callback = data=>{ alert(data) }; emitter.once('add', callback);
emitter.emit('add', 1);
emitter.emit('add', 1);
|
emit(eventName [, …args])
触发事件, 支持任意数量参数
名称 |
类型 |
数据类型 |
是否必填 |
说明 |
eventName |
参数 |
String/Symbol |
是 |
事件名称 |
…args |
参数 |
Any |
是 |
对应的回调函数 |
emitter |
返回值 |
Boolean |
— |
实例 |
1 2 3 4 5 6
| const callback = (a,b,c,d)=>{ console(a,b,c,d); }; emitter.once('add', callback);
emitter.emit('add', 1,2,3,4);
|
has(eventName)
是否绑定了指定事件
名称 |
类型 |
数据类型 |
是否必填 |
说明 |
eventName |
参数 |
String/Symbol |
是 |
事件名称 |
1 2 3
| emitter.on('add', callback);
emitter.has('add');
|
eventNames()
返回所有绑定事件名称
offAll()
解除所有绑定事件
1 2 3 4 5 6 7 8 9 10
| const callback = (a,b,c,d)=>{ console(a,b,c,d); }; emitter.on('add', callback); emitter.on('edf', callback); emitter.offAll();
emitter.emit('add', 1,2,3,4); emitter.emit('edf', 1,2,3,4);
|
destroy()
销毁实例
1 2 3 4 5 6 7 8
| const callback = (a,b,c,d)=>{ console(a,b,c,d); }; emitter.once('add', callback); emitter.destroy();
emitter.emit('add', 1,2,3,4);
|