File tree Expand file tree Collapse file tree 3 files changed +26
-1
lines changed Expand file tree Collapse file tree 3 files changed +26
-1
lines changed Original file line number Diff line number Diff line change @@ -16,7 +16,11 @@ it returns a function that can be used to unsubscribe from that event
16
16
17
17
### unsubscribe
18
18
19
- ` avMessage.unsubscribe(eventName) ` will remove all listeners for this event
19
+ ` avMessage.unsubscribe(eventName) ` will remove all listeners for this event.
20
+
21
+ ### unsubscribeAll
22
+
23
+ ` avMessage.unsubscribeAll() ` will remove all listeners for all events.
20
24
21
25
### enabled
22
26
Original file line number Diff line number Diff line change @@ -66,6 +66,10 @@ class AvMessage {
66
66
delete this . subscribers [ event ] ;
67
67
}
68
68
69
+ unsubscribeAll ( ) {
70
+ this . subscribers = { } ;
71
+ }
72
+
69
73
onMessage ( event , data ) {
70
74
if ( this . subscribers [ event ] ) {
71
75
this . subscribers [ event ] . forEach ( fn => {
Original file line number Diff line number Diff line change @@ -68,6 +68,11 @@ describe('AvMessage', () => {
68
68
expect ( avMessage . subscribers ) . toEqual ( {
69
69
[ testEvent ] : [ fn2 ] ,
70
70
} ) ;
71
+
72
+ unsubscribe ( ) ;
73
+ expect ( avMessage . subscribers ) . toEqual ( {
74
+ [ testEvent ] : [ fn2 ] ,
75
+ } ) ;
71
76
} ) ;
72
77
73
78
test ( 'unsusbscribe should remove subscriptions for event' , ( ) => {
@@ -80,6 +85,18 @@ describe('AvMessage', () => {
80
85
81
86
avMessage . unsubscribe ( 'event1' ) ;
82
87
expect ( avMessage . subscribers ) . toEqual ( { event2 } ) ;
88
+
89
+ avMessage . unsubscribe ( ) ;
90
+ expect ( avMessage . subscribers ) . toEqual ( { event2 } ) ;
91
+ } ) ;
92
+
93
+ test ( 'unsubscribeAll should remove all subscriptions' , ( ) => {
94
+ avMessage . subscribers = {
95
+ test1 : [ 'a' , 'b' ] ,
96
+ test2 : [ 'b' , 'c' ] ,
97
+ } ;
98
+ avMessage . unsubscribeAll ( ) ;
99
+ expect ( avMessage . subscribers ) . toEqual ( { } ) ;
83
100
} ) ;
84
101
} ) ;
85
102
You can’t perform that action at this time.
0 commit comments