PubSub Channel Test

by Jason Butz

HTML

<script src="//cdn.jsdelivr.net/bluebird/3.4.6/bluebird.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/pubsub-js/1.5.3/pubsub.min.js"></script>

JavaScript

function doOutput(channel, data) {
	$('body').append(`<p>${channel}.${data}</p>`);
}

Promise.resolve()
	.then(() => {
        PubSub.subscribe('a', (channel) => doOutput(channel, '1'));
        PubSub.subscribe('a.b', (channel) => doOutput(channel, '2'));
        PubSub.subscribe('a.b.', (channel) => doOutput(channel, '3'));
        PubSub.subscribe('a.b.c', (channel) => doOutput(channel, '4'));
        
        return Promise.resolve();
    })
    .delay(250)
    .then(() => {
    	PubSub.publish('a.b.c', null);
        
        return Promise.resolve();
    })
    .delay(250)
    .then(() => {
    	$('body').append('<p>NOW UNSUBSCRIBING FROM a.b</p>');
    	PubSub.unsubscribe('a.b');
        
        return Promise.resolve();
    })
    .delay(250)
    .then(() => {
    	PubSub.publish('a.b.c', null);
        
        return Promise.resolve();
    });