launchStream<T> method
Launch action
subscription that will be cancelled on Bloc's close method call.
Returns immediately cancelled StreamSubscription if bloc was already disposed.
Implementation
StreamSubscription<T> launchStream<T>(
Stream<T> action, {
void Function(T event)? onData,
Function? onError,
void Function()? onDone,
bool? cancelOnError,
}) {
if (_compositeSubscription.isDisposed) {
return _EmptyStreamSubscription<T>();
}
final subscription = action.listen(
onData ?? (_) {},
onError: onError,
onDone: onDone,
cancelOnError: cancelOnError,
);
try {
return _compositeSubscription.add(subscription);
} on String {
// Composite subscription was disposed in the meantime.
subscription.cancel();
return _EmptyStreamSubscription<T>();
}
}