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;
});
}