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