Tengo una consulta general sobre Axios y Promises. Quizás alguien me pueda ayudar a aclarar este concepto.
Interceptor básico de Axios incluye:
// 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); });
Mi pregunta es cuál es la diferencia entre devolver un error como
Project.reject(error);
y como
return error;
Esta respuesta y error van a los bloques Request 'then' amd 'catch' respectivamente, creo. Pero, ¿cuál es la diferencia si usamos Promise.resolve y Promise.reject?
Lo acabo de intentar (¡así de fácil!) y la diferencia es que al devolver una promesa rechazada ( return Promise.reject(error)
), le dices a axios
que la respuesta tiene una condición de error y que se debe notificar al código ascendente al respecto ( axios(…).catch(…)
se activará).
Al devolver solo el error ( return error
), le está diciendo a axios
que básicamente ignore el error y el código ascendente no lo sabrá ( axios(…).then(…)
se activará).