Added observables
This commit is contained in:
19
src/cpl_reactive_extensions/observable.py
Normal file
19
src/cpl_reactive_extensions/observable.py
Normal file
@@ -0,0 +1,19 @@
|
||||
from typing import Callable
|
||||
|
||||
from cpl_reactive_extensions.observer import Observer
|
||||
|
||||
|
||||
class Observable:
|
||||
def __init__(self, callback: Callable):
|
||||
self._callback = callback
|
||||
self._subscriptions: list[Callable] = []
|
||||
|
||||
def _run_subscriptions(self):
|
||||
for callback in self._subscriptions:
|
||||
callback()
|
||||
|
||||
def subscribe(self, observer: Observer):
|
||||
try:
|
||||
self._callback(observer)
|
||||
except Exception as e:
|
||||
observer.error(e)
|
||||
Reference in New Issue
Block a user