2.0.0 • Published 9 years ago
saber-emitter v2.0.0
saber-emitter
一个适用于移动端的事件发射器,兼容 node 环境。
Installation
通过 edp 引入模块:
$ edp import saber-emitter
或者在 node 环境下 使用 npm
引入模块:
$ npm install saber-emitter --save
Usage
require(['saber-emitter'], function(Emitter) {
var emitter = new Emitter();
emitter.on('greeting', function(name) {
console.log('Hello, ' + name + '!');
});
emitter.emit('greeting', 'Firede');
});
API
创建 Emitter
实例
- return
{Emitter}
var Emitter = require('saber-emitter');
var emitter = new Emitter();
Methods
mixin(obj)
通过 mixin
将 Emitter
混入目标对象
- obj
{Object}
目标对象 - return
{Object}
混入 Emitter 后的目标对象
var obj = {};
Emitter.mixin(obj);
obj.emit('foo');
Classes
on(event, listener)
挂载事件
- event
{string}
事件名 - listener
{Function}
监听器 - return
{Emitter}
function listenerFn(name) {
console.log('Hello ' + name);
}
emitter.on('say', listenerFn);
once(event, listener)
挂载只执行一次的事件
- event
{string}
事件名 - listener
{Function}
监听器 - return
{Emitter}
emitter.once('say', listenerFn);
off([event, listener])
注销事件与监听器
- event
{string=}
事件名 - listener
{Function=}
监听器 - return
{Emitter}
// `不传参数` 将注销当前实例的所有事件
emitter.off();
// 只传入 `event` 将注销该事件下挂载的所有监听器
emitter.off('say');
// 传入 `event` 与 `listener` 将只注销该监听器
emitter.off('say', listenerFn);
emit(event, ...args)
触发事件
- event
{string}
事件名 - args
{...*}
传递给监听器的参数,可以有多个 - return
{Emitter}
emitter.emit('say');
emitter.emit('say', 'hello');
emitter.emit('say', 'hello', 'world');
listeners(event)
返回指定事件的监听器列表
- event
{string}
事件名 - return
{Array}
监听器列表
var listeners = emitter.listeners('say');
setMaxListeners(number)
设置每个事件下,监听器的最大个数。为 0
时不限制,默认值是 10
- number
{number}
监听器个数 - return
{Emitter}
emitter.setMaxListeners(8);