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:

Methods

close()

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

off(event, listener) → {Stream}

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) → {Stream}

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() { ... }
});

Events

close

Emitted when the Stream has been closed through completion or the underlying session has been closed. No further events will be emitted after this.

error

Emitted when an error occurs in the Stream or in any of its listeners. No further events will be emitted after this.
Properties:
Name Type Description
error Error the error that occurred