bind method
override
Transforms the events sent to and emitted by channel.
Creates a new channel. When events are passed to the returned channel's
sink, the transformer will transform them and pass the transformed
versions to channel.sink. When events are emitted from the
channel.straem, the transformer will transform them and pass the
transformed versions to the returned channel's stream.
Implementation
StreamChannel<T> bind(StreamChannel<T> channel) {
return channel.changeSink((innerSink) {
var sink = new _DisconnectorSink<T>(innerSink);
if (isDisconnected) {
// Ignore errors here, because otherwise there would be no way for the
// user to handle them gracefully.
sink._disconnect().catchError((_) {});
} else {
_sinks.add(sink);
}
return sink;
});
}