UNPKG

shineout

Version:

Shein 前端组件库

49 lines (38 loc) 1.31 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var Notification = /*#__PURE__*/ function () { function Notification() { (0, _defineProperty2.default)(this, "$events", void 0); this.$events = {}; } var _proto = Notification.prototype; _proto.dispatch = function dispatch(name) { for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } var event = this.$events[name]; if (!event) return; event.forEach(function (fn) { return fn.apply(void 0, args); }); }; _proto.subscribe = function subscribe(name, fn) { if (!this.$events[name]) this.$events[name] = []; var events = this.$events[name]; if (events.includes(fn)) return; events.push(fn); }; _proto.unsubscribe = function unsubscribe(name, fn) { if (!this.$events[name]) return; if (fn) this.$events[name] = this.$events[name].filter(function (e) { return e !== fn; });else delete this.$events[name]; }; return Notification; }(); exports.default = Notification;