Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

node-observer

hormander232GPL0.4.4TypeScript support: definitely-typed

Observer pattern implementation

observer pattern, reactive, publish, subscribe

readme

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