UNPKG

antui-mobile

Version:
77 lines (64 loc) 2.43 kB
'use strict'; 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); };