Class: Stream

Stream


new Stream()

A Stream provides a series of events that may be consumed by arbitrary listeners. The events emitted by a stream are defined by the operation that created the stream and can carry event-specific arguments.


A stream is created in an open state, and may immediately emit events. When a Stream is closed it will emit a close. A closed stream will not emit any further events, and will remain closed permanently.

It is possible for a stream to encounter an error. In this case, an error event will be emitted, and then the stream will be closed.

This is a primitive class that is used to provide common event binding methods to other API components.

Fires:
  • Stream#event:error
  • Stream#event:close

Methods


close()

Close the stream. This will emit a 'close' event to any assigned listeners. No further events will be emitted.


off(event [, listener])

Remove a listener from a specified event.

Parameters:
Name Type Argument Description
event String

The event to remove listeners from

listener function <optional>

The listener to remove. All listeners for the event are removed if this is not specified

Returns:

This stream.

Type
Stream
Examples
// Bind a single listener to the 'foo' event and then deregister it
var listener = function() {};
stream.on('foo', listener);
stream.off('foo', listener);
// Bind a listener to the 'foo' event and deregister all listeners
var listener = function() {};
stream.on('foo', listener);
stream.off('foo');

on(events [, listener])

Register listeners against events.

A single listener may be bound to an event by passing the event name and listener function.

Multiple listeners may be bound by passing in an object, mapping event names to listener functions.

Parameters:
Name Type Argument Description
events String | Object

The event name or object mapping event names to listeners

listener function <optional>

The listener to bind to the event, if passed as string.

Returns:

This stream.

Type
Stream
Examples
// Bind a single listener to the 'foo' event
stream.on('foo', function(arg1, arg2) {
    console.log("Called for 'foo' event", arg1, arg2);
});
// Bind multiple listeners
stream.on({
    foo : function() { ... },
    bar : function() { ... },
    baz : function() { ... }
});