返回介绍

saber-emitter v2.0.0-alpha.1

发布于 2023-10-15 20:10:06 字数 2891 浏览 0 评论 0 收藏 0

一个适用于移动端的事件发射器。

Installation

通过 edp 引入模块:

edp import saber-emitter

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)

通过 mixinEmitter 混入目标对象

  • 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);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文