when<R> method

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

Implementation

R when<R>({
  required R Function() idle,
  required R Function() loading,
  required R Function(T data) success,
  required R Function(Object error, StackTrace? stackTrace) error,
}) {
  switch (state) {
    case AsyncState.idle:
      return idle();
    case AsyncState.loading:
      return loading();
    case AsyncState.success:
      return success(data as T);
    case AsyncState.error:
      return error(this.error!, stackTrace);
  }
}