Skip to content

SignalJS is an implementation of signals/slots system in JavaScript.

License

Notifications You must be signed in to change notification settings

yeliu84/signal.js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

  1. Clone this repo and add signal.js to my HTML

    <script src="path/to/signal.js"></script>
  2. 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');
  3. 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);
  4. Let MyApp.X send the signal when some event is happened

    MyApp.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);
        });
  5. That's it!

Live DEMO

About

SignalJS is an implementation of signals/slots system in JavaScript.

Resources

License

Stars

Watchers

Forks

Packages

No packages published