onError method
The callback will be executed on error.
If you want to continue the error , call handler.next
.
If you want to complete the response with some custom data directly,
you can resolve a Response
object with handler.resolve
and other
error interceptor(s) will be skipped.
If you want to complete the response with an error message directly,
you can reject a DioError
object with handler.reject
, and other
error interceptor(s) will be skipped.
Implementation
@override
void onError(DioError err, ErrorInterceptorHandler handler) {
if (err.response != null) {
_saveCookies(err.response!).then((_) => handler.next(err)).catchError((e, stackTrace) {
var _err = DioError(
requestOptions: err.response!.requestOptions,
error: e,
);
_err.stackTrace = stackTrace;
handler.next(_err);
});
} else {
handler.next(err);
}
}