Added event system functionality
This commit is contained in:
parent
3911421356
commit
3e0b79551a
Binary file not shown.
After Width: | Height: | Size: 149 KiB |
|
@ -18,6 +18,12 @@ class EventSystem:
|
|||
def subscribe(self, event_type, fn):
|
||||
self.subscribers[event_type].append(fn)
|
||||
|
||||
def unsubscribe(self, event_type, fn):
|
||||
self.subscribers[event_type].remove(fn)
|
||||
|
||||
def unsubscribe_all(self, event_type):
|
||||
self.subscribers.pop(event_type, None)
|
||||
|
||||
def emit(self, event_type, data = None):
|
||||
if event_type in self.subscribers:
|
||||
for fn in self.subscribers[event_type]:
|
||||
|
@ -29,8 +35,8 @@ class EventSystem:
|
|||
else:
|
||||
fn()
|
||||
|
||||
# NOTE: Should be used when signal has only one listener and vis-a-vis
|
||||
def emit_and_await(self, event_type, data = None):
|
||||
""" NOTE: Should be used when signal has only one listener and vis-a-vis """
|
||||
if event_type in self.subscribers:
|
||||
for fn in self.subscribers[event_type]:
|
||||
if data:
|
||||
|
|
Loading…
Reference in New Issue