antui-mobile
Version:
mobile ui for antd
77 lines (64 loc) • 2.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.trigger = exports.off = exports.once = exports.on = exports.eventEmitter = undefined;
var _wolfy87Eventemitter = require('wolfy87-eventemitter');
var _wolfy87Eventemitter2 = _interopRequireDefault(_wolfy87Eventemitter);
var _check = require('../../utils/check');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var eventEmitter = exports.eventEmitter = new _wolfy87Eventemitter2.default();
exports.default = eventEmitter;
/**
* 注册事件监听
* @param eventName{string} 事件名称
* @param callbacks{array|function} 事件触发时调用的函数,
* 支持数组传入多个函数。一般上willmount时进行注册,
* 在didMount时调用off进行解除注册。
*/
var on = exports.on = function on(eventName, callbacks) {
if ((0, _check.isFunction)(callbacks)) {
eventEmitter.addListener(eventName, callbacks);
} else if ((0, _check.isArray)(callbacks)) {
eventEmitter.addListeners(eventName, callbacks);
} else {
console.error("类型错误: ", callbacks);
}
};
/**
* 注册一次事件监听,只能触发一次trigger触发后即自动从监听中移除
* @param eventName{string} 事件名称
* @param callback{function} 事件触发时调用的函数
*/
var once = exports.once = function once(eventName, callback) {
if ((0, _check.isFunction)(callback)) {
eventEmitter.addOnceListener(eventName, callback);
} else {
console.error("类型错误: ", callback);
}
};
/**
* 移除事件监听
* @param eventName{string} 事件名称
* @param callbacks{array|function} 事件名称对应的函数
*/
var off = exports.off = function off(eventName, callbacks) {
if ((0, _check.isFunction)(callbacks)) {
eventEmitter.removeListener(eventName, callbacks);
} else if ((0, _check.isArray)(callbacks)) {
eventEmitter.removeListeners(eventName, callbacks);
} else {
console.error("类型错误: ", callbacks);
}
};
/**
* 触发事件
* @param eventName{string} 事件名称
* @param args{obj} 需要传递的参数
*/
var trigger = exports.trigger = function trigger(eventName) {
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
eventEmitter.emitEvent(eventName, args);
};