executeOrThrow<T> static method
Future<T>
executeOrThrow<T>(
- List<
YKInterceptor> interceptors, - int maxRetries,
- YKNetworkingRequest request, {
- int retryCount = 0,
- Set<
String> ? retrySkipNames,
Throwing variant of execute.
Returns T directly on success, throws YKNetworkException on failure
or cancellation.
Implementation
static Future<T> executeOrThrow<T>(
List<YKInterceptor> interceptors,
int maxRetries,
YKNetworkingRequest request, {
int retryCount = 0,
Set<String>? retrySkipNames,
}) async {
final result = await _executeWithChain<T>(
interceptors: interceptors,
maxRetries: maxRetries,
request: request,
retryCount: retryCount,
retrySkipNames: retrySkipNames,
transport: () async {
final dio = YKNetworkingConfig.getInstance().dio;
dio.options.baseUrl = request.baseUrl;
final dioResponse = await _sendRequest(dio, request);
return YKInterceptorResponse(
data: dioResponse.data,
statusCode: dioResponse.statusCode ?? 200,
headers: dioResponse.headers.map,
request: request,
);
},
);
switch (result) {
case YKSuccess(:final data):
return data;
case YKFailure(:final exception):
throw exception;
case YKCancelled(:final reason):
throw YKNetworkException(
type: YKErrorType.cancelled,
message: reason,
);
}
}