SignalJS is a minimalist implementation of signals/slots system in JavaScript.
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 bothMyApp.X
andMyApp.Y
MyApp.dummySignal = Signal.create('dummySignal');
-
Connect
MyApp.Y
to the just created signalMyApp.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 happenedMyApp.X.http.get('/data'). success(function(response) { /* * Got new data, send signal to notify whomever is connected. In * this example, `MyApp.Y.signalHandler` will be called. */ MyApp.dummySignal.emit(MyApp.X, response); });
-
That's it!