@coze/uniapp-api
Version:
Official Coze UniApp SDK for seamless AI integration into your applications | 扣子官方 UniApp SDK,助您轻松集成 AI 能力到应用中
56 lines (55 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseEventSource = void 0;
const types_1 = require("../types");
const types_2 = require("./types");
class BaseEventSource {
constructor() {
Object.defineProperty(this, "events", {
enumerable: true,
configurable: true,
writable: true,
value: new types_1.Events()
});
Object.defineProperty(this, "isClosed", {
enumerable: true,
configurable: true,
writable: true,
value: false
});
}
on(eventName, handler) {
this.events.on(eventName, handler);
return this;
}
off(eventName, handler) {
if (!eventName) {
this.events.off();
}
else if (!handler) {
this.events.off(eventName);
}
else {
this.events.off(eventName, handler);
}
return this;
}
trigger(eventName, args = {}) {
// Success/Fail should only fired once
if (this.isClosed &&
(eventName === types_2.EventName.Success || eventName === types_2.EventName.Fail)) {
return this;
}
if (eventName === types_2.EventName.Success || eventName === types_2.EventName.Fail) {
this.isClosed = true;
}
const msg = {
event: eventName,
data: args.data,
errMsg: args.errMsg,
};
this.events.trigger(eventName, msg);
return this;
}
}
exports.BaseEventSource = BaseEventSource;