diff --git a/Test/event-bus-test.js b/Test/event-bus-test.js index 631799e..c99c8b8 100644 --- a/Test/event-bus-test.js +++ b/Test/event-bus-test.js @@ -7,31 +7,40 @@ const whyCallback1 = (...payload) => { } const whyCallback2 = (...payload) => { - console.log("whyCallback1:", payload) + console.log("whyCallback2:", payload) } const lileiCallback1 = (...payload) => { console.log("lileiCallback1:", payload) } +const ztCallback1 = (...payload) => { + console.log('ztCallback1', payload) +} + eventBus.on("why", whyCallback1) eventBus.on("why", whyCallback2) eventBus.on('lilei', lileiCallback1) eventBus.once("why", (...payload) => { console.log("why once:", payload) }) +eventBus.on('zzt', ztCallback1) setTimeout(() => { eventBus.emit("why", "abc", "cba", "nba") eventBus.emit("lilei", "abc", "cba", "nba") + eventBus.emit("zzt", "abc", "cba", "nba") }, 1000); setTimeout(() => { eventBus.off("why", whyCallback1) eventBus.off("lilei", lileiCallback1) + eventBus.clear('zzt') + eventBus.clear() }, 2000); setTimeout(() => { eventBus.emit("why") eventBus.emit("lilei") + eventBus.emit('zzt') }, 3000); diff --git a/src/event-bus.js b/src/event-bus.js index d2e8416..8162b17 100644 --- a/src/event-bus.js +++ b/src/event-bus.js @@ -79,6 +79,17 @@ class HYEventBus { delete this.eventBus[eventName] } } + + clear(...eventNames) { + if (!eventNames.length) { + this.eventBus = {} + return + } + if (eventNames.some(eventName => typeof eventName !== 'string')) { + throw new TypeError("the event name must be string type") + } + eventNames.forEach(eventName => delete this.eventBus[eventName]) + } } module.exports = HYEventBus