emitter-pro

一个简单的 Javascript 事件管理,支持浏览器端和 node 端。
使用
安装
yarn add emitter-pro
or
npm install emitter-pro
示例
import Emitter from 'emitter-pro';
const emitter = new Emitter();
emitter.on('foo', () => console.log('bar'));
emitter.on('foo', () => console.log('baz'));
emitter.on('foo', () => console.log(42));
emitter.emit('foo');
emitter.off('foo');
实例方法
on(eventName: string, listener: F)
注册监听方法。
返回当前实例。
const emitter = new Emitter();
emitter.on('foo', () => console.log('bar'));
emitter.on('foo', () => console.log('baz'));
const fn = () => console.log('test');
emitter.on('test', fn);
emitter.on('test', fn);
emit(eventName: string, ...args: Parameters)
触发方法。
返回当前实例。
const emitter = new Emitter();
emitter.on('foo', () => console.log('bar'));
emitter.on('foo', () => console.log('baz'));
emitter.emit('foo');
emitter.on('test' (a, b) => console.log(a + b));
emitter.on('test' (a, b) => console.log(a * b));
emitter.emit('test', 2, 5);
emitter.emit('test', 5, 5);
off(eventName: string, listener?: F)
取消监听方法。如果不传第二个参数,将取消该事件名称的全部监听方法。
返回当前实例。
const emitter = new Emitter();
const fn = () => console.log('bar');
emitter.on('foo', fn);
emitter.on('foo', () => console.log('baz'));
emitter.on('foo', () => console.log(42));
emitter.emit('foo');
emitter.off('foo', fn);
emitter.emit('foo');
emitter.off('foo');
emitter.emit('foo');
once(eventName: string, listener: F)
仅触发一次的监听方法。使用方法同 on 。
返回当前实例。
offAll()
取消全部事件名称的监听方法。
返回当前实例。
const emitter = new Emitter();
const fn = () => console.log('bar');
emitter.on('test', fn);
emitter.on('test', () => console.log('baz'));
emitter.on('test', () => console.log(42));
emitter.on('other', fn);
emitter.on('other', () => console.log('baz'));
emitter.offAll();
emitter.emit('test');
emitter.emit('other');
eventNames()
获取全部事件名称。
返回事件名称数组。
const emitter = new Emitter();
const fn = () => console.log('bar');
emitter.on('test', fn);
emitter.on('other', fn);
console.log(emitter.eventNames());
listeners(eventName: string)
获取事件名称的全部监听方法。
返回事监听方法数组。
const emitter = new Emitter();
const fn1 = () => console.log('bar');
const fn2 = () => console.log('baz');
emitter.on('test', fn1);
emitter.on('test', fn2);
console.log(emitter.listeners('test'));