Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to manage axios errors globally or from one point

Tags:

I have the standard then/catch axios code all over my app, a simple one goes likes this..

axios.get('/').then( r => {} ).catch( e => {} ) 

The problem I have with the above is that I have to duplicate the catch() block to handle any potential errors that my be invoked in my app and my questions is, if there is anything I can do to catch the errors globally from on entry point as opposed to using catch everywhere.

I am looking for solutions from either axios side or vue, since my app is built with vue

like image 628
hidar Avatar asked Feb 26 '18 14:02

hidar


People also ask

How do you handle errors with Axios?

axios. get('/user/12345') . catch(function (error) { if (error.


1 Answers

You should use an interceptor.

First, create an axios instance using the create method. This is what you would need to use throughout your app instead of referencing axios directly. It would look something like this:

let api = axios.create({   baseURL: 'https://some-domain.com/api/',   timeout: 1000,   headers: {'X-Custom-Header': 'foobar'} }); 

Then attach an interceptor to your axios instance to be called after the response to each of the requests for that instance:

api.interceptors.response.use((response) => response, (error) => {   // whatever you want to do with the error   throw error; }); 
like image 195
thanksd Avatar answered Sep 27 '22 00:09

thanksd