when<R> method

R when<R>({
  1. required R initial(),
  2. required R loading(),
  3. required R success(
    1. T data
    ),
  4. required R error(
    1. Object? err,
    2. StackTrace? stackTrace
    ),
})

Implementation

R when<R>({
  required R Function() initial,
  required R Function() loading,
  required R Function(T data) success,
  required R Function(Object? err, StackTrace? stackTrace) error,
}) {
  switch (status) {
    case AsyncStatus.initial:
      return initial();
    case AsyncStatus.loading:
      return loading();
    case AsyncStatus.success:
      return success(data as T);
    case AsyncStatus.error:
      return error(this.error, this.stackTrace);
  }
}