Observer: Priority Order

by Gary Metzker

HTML

<script src="http://code.gmetzker.com/observerjs/Observer.js"></script>
<input type='button' value='Publish some.event' id='pubButton'>
<div id='out'><h3>Output<h3></div>

JavaScript

$(document).ready(function () {


    var ob = new Observer();

    ob.subscribe('some.event', function () {
        output('Luke has no priority specified but was added first');
    });
    
    ob.subscribe('some.event', function () {
        output('Yoda has a priority of 10');
    }, 10);

    
    ob.subscribe('some.event', function () {
        output('Obi has no priority specified');
    });
    
    ob.subscribe('some.event', function () {
        output('Chewy has the highest priority and will go first - 99');
    }, 99);
    
    ob.subscribe('some.event', function () {
        output('R2D2 has a priority of 5');
    }, 5);

    

    $('#pubButton').on('click', function () {

        ob.publish('some.event');

    });

    function output(value) {
        $('#out').append(value + '<br/>');
    }

});