catchError<R extends APIResponse, E> function

Future<R> catchError<R extends APIResponse, E>(
  1. Future<R> future,
  2. R handle(
    1. E
    ),
  3. ErrorMode errorMode
)

Implementation

Future<R> catchError<R extends APIResponse, E>(
    Future<R> future, R Function(E) handle, ErrorMode errorMode) {
  return future.catchError((e) {
    if (e is E) {
      final apiResponse = handle(e);
      if (errorMode == ErrorMode.handleAndReturn) {
        return Future.value(apiResponse);
      } else if (errorMode == ErrorMode.handleAndRetrow) {
        return Future<R>.error(apiResponse.error ??
            ResponseError.unknown(message: 'Unknown Error'));
      }
    }
    return Future<R>.error(e);
  });
}