src/channel.js

Method channel

Channel factory

Returns an Object
(Channel instance)

var channel = function () { return new Channel(); };

Constructor

Channel

Returns an Object
(Channel instance)

function Channel () { this.queue = []; }

Setting constructor loop

Channel.prototype.constructor = Channel;

Method put

Puts an item into the Channel

Parameters:

  • arg can be of any type.
    (Item)

Returns an Object
(Deferred instance)

Channel.prototype.put = function ( arg ) { var defer = deferred(); if ( this.queue.length === 0 ) { this.queue.push( arg ); defer.resolve( ["continue", null] ); } else { defer.resolve( ["pause", null] ); } return defer; };

Method take

Takes an item from the Channel

Returns an Object
(Deferred instance)

Channel.prototype.take = function () { var defer = deferred(); if ( this.queue.length === 0 ) { defer.resolve( ["pause", null] ); } else { defer.resolve( ["continue", this.queue.pop()] ); } return defer; };