shineout
Version:
Shein 前端组件库
43 lines (34 loc) • 1.12 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
var Notification =
/*#__PURE__*/
function () {
function Notification() {
_defineProperty(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;
}();
export { Notification as default };