map<E> method
E
map<E>({
- required AsyncDataBuilder<
E, T> data, - required AsyncErrorBuilder<
E> error, - required AsyncStateBuilder<
E> loading, - AsyncStateBuilder<
E> ? reloading, - AsyncStateBuilder<
E> ? refreshing,
Map the state to a value.
final signal = StreamSignal<int>();
signal.value.map(
data: (value) => 'Value: $value',
error: (error, stackTrace) => 'Error: $error',
loading: () => 'Loading...',
);
The error Function below can be one of two types:
- (dynamic) -> FutureOr
- (dynamic, StackTrace) -> FutureOr
Implementation
E map<E>({
required AsyncDataBuilder<E, T> data,
required AsyncErrorBuilder<E> error,
required AsyncStateBuilder<E> loading,
AsyncStateBuilder<E>? reloading,
AsyncStateBuilder<E>? refreshing,
}) {
if (isRefreshing) if (refreshing != null) return refreshing();
if (isReloading) if (reloading != null) return reloading();
if (hasValue) return data(value as T);
if (hasError) {
if (error is Function(dynamic, dynamic)) {
return error(this.error, stackTrace);
} else if (error is Function(dynamic)) {
return error(this.error);
} else {
return error();
}
}
return loading();
}