in lib/src/stream_completer.dart [120:137]
StreamSubscription<T> listen(void Function(T)? onData,
{Function? onError, void Function()? onDone, bool? cancelOnError}) {
if (_controller == null) {
var sourceStream = _sourceStream;
if (sourceStream != null && !sourceStream.isBroadcast) {
// If the source stream is itself single subscription,
// just listen to it directly instead of creating a controller.
return sourceStream.listen(onData,
onError: onError, onDone: onDone, cancelOnError: cancelOnError);
}
_ensureController();
if (_sourceStream != null) {
_linkStreamToController();
}
}
return _controller!.stream.listen(onData,
onError: onError, onDone: onDone, cancelOnError: cancelOnError);
}