selectData<R> method

Computed<AsyncState<R>> selectData<R>(
  1. R selector(
    1. T data
    )
)

Select from data when available, preserving async state

Implementation

Computed<AsyncState<R>> selectData<R>(R Function(T data) selector) {
  return select(
    (asyncState) {
      return switch (asyncState()) {
        AsyncData(:final value) => AsyncState.data(selector(value)),
        AsyncLoading() => AsyncState.loading(),
        AsyncError(:final error, :final stackTrace) =>
          AsyncState.error(error, stackTrace),
      };
    },
  );
}