whenOrNull<TResult extends Object?> method
TResult?
whenOrNull<TResult extends Object?>({
- TResult? cancel(
- Object? error,
- RequestOptions? options
- TResult? connectionTimeout()?,
- TResult? sendTimeout()?,
- TResult? receiveTimeout()?,
- TResult? badCertificate()?,
- TResult? connectionError()?,
- TResult? badResponse(
- Response? response,
- int? statusCode
- TResult? businessException(
- String message,
- Object? error,
- StackTrace? stackTrace
A variant of when
that fallback to returning null
It is equivalent to doing:
switch (sealedClass) {
case Subclass(:final field):
return ...;
case _:
return null;
}
Implementation
@optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({
TResult? Function(@igFreezedJson Object? error,
@igFreezedJson RequestOptions? options)?
cancel,
TResult? Function()? connectionTimeout,
TResult? Function()? sendTimeout,
TResult? Function()? receiveTimeout,
TResult? Function()? badCertificate,
TResult? Function()? connectionError,
TResult? Function(@igFreezedJson Response? response, int? statusCode)?
badResponse,
TResult? Function(String message, @igFreezedJson Object? error,
@igFreezedJson StackTrace? stackTrace)?
businessException,
}) {
final _that = this;
switch (_that) {
case BaseApiCancelException() when cancel != null:
return cancel(_that.error, _that.options);
case BaseApiConnectionTimeoutException() when connectionTimeout != null:
return connectionTimeout();
case BaseApiSendTimeoutException() when sendTimeout != null:
return sendTimeout();
case BaseApiReceiveTimeoutException() when receiveTimeout != null:
return receiveTimeout();
case BaseApiBadCertificateException() when badCertificate != null:
return badCertificate();
case BaseApiConnectionErrorException() when connectionError != null:
return connectionError();
case BaseApiBadResponseException() when badResponse != null:
return badResponse(_that.response, _that.statusCode);
case BaseApiBusinessException() when businessException != null:
return businessException(_that.message, _that.error, _that.stackTrace);
case _:
return null;
}
}