Signals/Slots in JavaScript
SignalJS is a minimalist implementation of signals/slots system in JavaScript.
How to Use
Say I have an app called MyApp, it has two objects MyApp.X
and MyApp.Y
.
Now, MyApp.Y
wants to be notified if there are some events happened on
MyApp.X
. To accomplish this task, I just need the following few steps:
-
Clone this repo and add signal.js
to my HTML
<script src="path/to/signal.js"></script>
-
Create a signal and attach it to MyApp
namespace, so it can be accessed by
both MyApp.X
and MyApp.Y
MyApp.dummySignal = Signal.create('dummySignal');
-
Connect MyApp.Y
to the just created signal
MyApp.Y.signalHandler = function(sender, data) {
console.log('Received a dummySignal from sender with data');
};
MyApp.dummySignal.connect(MyApp.Y.signalHandler, MyApp.Y);
-
Let MyApp.X
send the signal when some event is happened
MyApp.X.http.get('/data').
success(function(response) {
MyApp.dummySignal.emit(MyApp.X, response);
});
-
That's it!
Live DEMO