agora-edu-core
Version:
Core APIs for building an online classroom
53 lines (52 loc) • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.EduEventCenter = void 0;
require("core-js/modules/esnext.set.add-all.js");
require("core-js/modules/esnext.set.delete-all.js");
require("core-js/modules/esnext.set.difference.js");
require("core-js/modules/esnext.set.every.js");
require("core-js/modules/esnext.set.filter.js");
require("core-js/modules/esnext.set.find.js");
require("core-js/modules/esnext.set.intersection.js");
require("core-js/modules/esnext.set.is-disjoint-from.js");
require("core-js/modules/esnext.set.is-subset-of.js");
require("core-js/modules/esnext.set.is-superset-of.js");
require("core-js/modules/esnext.set.join.js");
require("core-js/modules/esnext.set.map.js");
require("core-js/modules/esnext.set.reduce.js");
require("core-js/modules/esnext.set.some.js");
require("core-js/modules/esnext.set.symmetric-difference.js");
require("core-js/modules/esnext.set.union.js");
var _agoraRteSdk = require("agora-rte-sdk");
var _type = require("./type");
var _EduEventCenter;
class EduEventCenter extends _agoraRteSdk.AGEventEmitter {
constructor() {
super();
this._callbacks = new Set();
}
emitClasroomEvents(type, ...args) {
this.emit(_type.AgoraEduEventType.classroomEvents, type, ...args);
}
onClassroomEvents(cb) {
if (this._callbacks.has(cb)) {
return;
}
this._callbacks.add(cb);
this.on(_type.AgoraEduEventType.classroomEvents, cb);
}
offClassroomEvents(cb) {
this._callbacks.delete(cb);
this.off(_type.AgoraEduEventType.classroomEvents, cb);
}
cleanup() {
this._callbacks.forEach(cb => {
this.offClassroomEvents(cb);
});
}
}
exports.EduEventCenter = EduEventCenter;
_EduEventCenter = EduEventCenter;
EduEventCenter.shared = new _EduEventCenter();