node-observer
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/node-observer package

0.4.4 • Public • Published

Observer

This is an observer pattern module

Install

npm install node-observer

Example

Main file: app.js

"use strict";
 
var observer = require("node-observer");
var hello = require("./hello");
 
observer.subscribe(this, "HELLO", function(who, data) {
    console.log(data);
});
 
hello.send();

File: hello.js

"use strict";
 
var observer = require("node-observer");
 
var Hello = function() { };
 
Hello.prototype.send = function() {
    observer.send(this, "HELLO", "hello world!!!");
};
 
module.exports = new Hello();

Run

node app.js

API

subscribe(object, event, callback)

object:object, event:string, callback:function

subscribe event

unsubscribe(object, event)

object:object, event:string

unsubscribe event

send(object, event, data)

object:object, event:string, data:object

send event 'event' with data 'data'

Browser version

Under client directory there is a browser version of library. Added script tag in your html file. See the example below.

File index.html

<html>
<head>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="observer.js"></script>
<script type="text/javascript" src="app.js"></script>
<script type="text/javascript" src="mylib.js"></script>
</head>
<body>
Javascript observer pattern example: see the result in console
</body>
</html>

File app.js

$(function() {
    Observer.subscribe(this, 'HELLO', function(who, data) {
        console.log(data);
    });
});

File mylib.js

(function(window) {
 
    var getInstance = function() {
        Observer.send(this, 'HELLO', 'Hello world!!!');
    };
 
    if (typeof(mylib) === 'undefined') {
        window.mylib = getInstance();
    } else {
        console.log('mylib already defined.');
    }
 
})(window);

Contributors

Package Sidebar

Install

npm i node-observer

Weekly Downloads

94

Version

0.4.4

License

GPL

Last publish

Collaborators

  • hormander