@coze/uniapp-api
Version:
Official Coze UniApp SDK for seamless AI integration into your applications | 扣子官方 UniApp SDK,助您轻松集成 AI 能力到应用中
56 lines (55 loc) • 1.49 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Events = void 0;
/**
* 事件系统类,用于替代UniApp的Events
*/
class Events {
constructor() {
Object.defineProperty(this, "events", {
enumerable: true,
configurable: true,
writable: true,
value: {}
});
}
on(eventName, callback) {
if (!this.events[eventName]) {
this.events[eventName] = [];
}
this.events[eventName].push(callback);
return this;
}
off(eventName, callback) {
if (!eventName) {
this.events = {};
return this;
}
if (!callback) {
delete this.events[eventName];
return this;
}
const callbacks = this.events[eventName];
if (callbacks) {
const index = callbacks.indexOf(callback);
if (index !== -1) {
callbacks.splice(index, 1);
}
if (callbacks.length === 0) {
delete this.events[eventName];
}
}
return this;
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
trigger(eventName, ...args) {
const callbacks = this.events[eventName];
if (callbacks) {
callbacks.forEach(callback => {
callback(...args);
});
}
return this;
}
}
exports.Events = Events;