Files
testing-tool/sidepanel/js/utils/eventManager.js
T
雨霖铃 52f6dcce3d feat(router): 增强路由组件加载逻辑
1. 修改卸载timer、event、script的逻辑
2. 修改加载script的逻辑
2025-12-14 09:11:52 +08:00

41 lines
1017 B
JavaScript

export class EventManager {
constructor() {
this.listeners = [];
}
add(ele, type, handler, options) {
ele.addEventListener(type, handler, options);
this.listeners.push({ele, type, handler, options});
}
remove(ele, type, handler, options) {
ele.removeEventListener(type, handler, options);
this.listeners = this.listeners.filter(
(listener) =>
listener.ele !== ele ||
listener.type !== type ||
listener.handler !== handler ||
listener.options !== options
);
}
removeAll() {
return new Promise((resolve, reject) => {
this.listeners.onload = () => {
this.listeners.forEach((listener) => {
listener.ele.removeEventListener(
listener.type,
listener.handler,
listener.options
);
});
resolve();
};
this.listeners.onerror = () => {
console.error('unload event error');
reject();
};
this.listeners = [];
});
}
}