when<E> method

E when<E>({
  1. required E onLoading(
    1. ResponseOrigin origin
    ),
  2. required E onData(
    1. ResponseOrigin origin,
    2. T data
    ),
  3. required E onError(
    1. ResponseOrigin origin,
    2. Object error,
    3. StackTrace? stackTrace
    ),
})

Invokes onData if the response is successful, onLoading if the response is loading, and onError if the response is an error.

Implementation

E when<E>({
  required E Function(ResponseOrigin origin) onLoading,
  required E Function(ResponseOrigin origin, T data) onData,
  required E Function(
    ResponseOrigin origin,
    Object error,
    StackTrace? stackTrace,
  ) onError,
}) =>
    map(
      onLoading: (value) => onLoading(value.origin),
      onData: (value) => onData(value.origin, value.value),
      onError: (value) => onError(
        value.origin,
        value.error,
        value.stackTrace,
      ),
    );