I have a general query about Axios and Promises. Maybe someone can help me clear this concept.
Basic Interceptor of Axios includes:
// Add a response interceptor
axios.interceptors.response.use(function (response) {
// Any status code that lie within the range of 2xx cause this function to trigger
// Do something with response data
return response;
}, function (error) {
// Any status codes that falls outside the range of 2xx cause this function to trigger
// Do something with response error
return Promise.reject(error);
});
My question is what's the difference between returning error as
Project.reject(error);
and as
return error;
This response and error goes to the Request 'then' amd 'catch' blocks respectively I believe. But what's the difference if we use Promise.resolve and Promise.reject?
I just tried (it's that easy!) and the difference is that by returning a rejected promise (return Promise.reject(error)
), you tell axios
that the response has an error condition and that the upstream code should be notified about it (axios(…).catch(…)
will trigger).
When returning just the error (return error
), you're telling axios
to basically ignore the error and the upstream code will not know about it (axios(…).then(…)
will trigger).