如何简单使用JavaScript实现一个EventEmitter 包含on,once,off,emit
使用发布订阅者模式,简单实现,代码如下:
class EventEmitter {
constructor() {
this.eventProcessingMap = new Map();
}
emit(eventName, ...args) {
if (!typeof eventName === "srting" || !typeof eventName === "symbol") {
throw new Error("The parameter eventName must be a string or symbol");
}
if (this.eventProcessingMap.has(eventName)) {
this.eventProcessingMap
.get(eventName)
.slice()
.forEach((handler) => {
handler(...args);
});
}
}
on(eventName, handler) {