UNPKG

miniapp-web-jsapi

Version:

JSAPI/View adapter for miniprogram running on the web

58 lines 2.15 kB
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray"; import _classCallCheck from "@babel/runtime/helpers/classCallCheck"; import _createClass from "@babel/runtime/helpers/createClass"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; var EventManager = /*#__PURE__*/function () { function EventManager(managerName) { _classCallCheck(this, EventManager); _defineProperty(this, "managerName", void 0); _defineProperty(this, "listenersMap", {}); this.managerName = managerName; } _createClass(EventManager, [{ key: "addListener", value: function addListener(eventName, listener) { var _this = this; console.log("EventManager_".concat(this.managerName, "#addListener: ").concat(eventName)); var listeners = this.listenersMap[eventName]; if (!listeners) { listeners = []; this.listenersMap[eventName] = listeners; } listeners.push(listener); return function () { _this.removeListener(eventName, listener); }; } }, { key: "removeListener", value: function removeListener(eventName, listener) { console.log("EventManager_".concat(this.managerName, "#removeListener: ").concat(eventName)); if (!listener) { this.listenersMap[eventName] = []; return; } var listeners = this.listenersMap[eventName]; if (listeners) { this.listenersMap[eventName] = listeners.filter(function (item) { return item !== listener; }); } } }, { key: "notifyEvent", value: function notifyEvent(eventName, params) { console.log("EventManager_".concat(this.managerName, "#notifyEvent: ").concat(eventName, " -> "), params); var listeners = this.listenersMap[eventName]; if (listeners) { // 复制一份防止遍历中同时 remove _toConsumableArray(listeners).forEach(function (listener) { return listener(params, eventName); }); } } }]); return EventManager; }(); var defaultEventManager = new EventManager('default'); export { defaultEventManager, EventManager };