Merge branch ‘release/2.0’
一个适用于移动端的事件发射器,兼容 node 环境。
通过 edp 引入模块:
$ edp import saber-emitter
或者在 node 环境下 使用 npm 引入模块:
npm
$ npm install saber-emitter --save
require(['saber-emitter'], function(Emitter) { var emitter = new Emitter(); emitter.on('greeting', function(name) { console.log('Hello, ' + name + '!'); }); emitter.emit('greeting', 'Firede'); });
创建 Emitter 实例
Emitter
{Emitter}
var Emitter = require('saber-emitter'); var emitter = new Emitter();
通过 mixin 将 Emitter 混入目标对象
mixin
{Object}
var obj = {}; Emitter.mixin(obj); obj.emit('foo');
挂载事件
{string}
{Function}
function listenerFn(name) { console.log('Hello ' + name); } emitter.on('say', listenerFn);
挂载只执行一次的事件
emitter.once('say', listenerFn);
注销事件与监听器
{string=}
{Function=}
// `不传参数` 将注销当前实例的所有事件 emitter.off(); // 只传入 `event` 将注销该事件下挂载的所有监听器 emitter.off('say'); // 传入 `event` 与 `listener` 将只注销该监听器 emitter.off('say', listenerFn);
触发事件
{...*}
emitter.emit('say'); emitter.emit('say', 'hello'); emitter.emit('say', 'hello', 'world');
返回指定事件的监听器列表
{Array}
var listeners = emitter.listeners('say');
设置每个事件下,监听器的最大个数。为 0 时不限制,默认值是 10
0
10
{number}
emitter.setMaxListeners(8);
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
saber-emitter
一个适用于移动端的事件发射器,兼容 node 环境。
Installation
通过 edp 引入模块:
或者在 node 环境下 使用
npm引入模块:Usage
API
创建
Emitter实例{Emitter}Methods
mixin(obj)
通过
mixin将Emitter混入目标对象{Object}目标对象{Object}混入 Emitter 后的目标对象Classes
on(event, listener)
挂载事件
{string}事件名{Function}监听器{Emitter}once(event, listener)
挂载只执行一次的事件
{string}事件名{Function}监听器{Emitter}off([event[, listener]])
注销事件与监听器
{string=}事件名{Function=}监听器{Emitter}emit(event[, …args])
触发事件
{string}事件名{...*}传递给监听器的参数,可以有多个{Emitter}listeners(event)
返回指定事件的监听器列表
{string}事件名{Array}监听器列表setMaxListeners(number)
设置每个事件下,监听器的最大个数。为
0时不限制,默认值是10{number}监听器个数{Emitter}