Tengo un método que devuelve una promesa que resuelve o rechaza.
myMethod() { return new Promise((resolve, reject) => { axiosClient .get(endpoint) .then((response) => { resolve(response.data); }) .catch((error) => { reject(error); }); }); }¿Hay alguna forma de devolver otra promesa en caso de que esto produzca un error, llamando a un punto final de respaldo? Algo del estilo de:
myMethod() { return new Promise((resolve, reject) => { axiosClient .get(endpoint) .then((response) => { resolve(response.data); }) .catch(() => { axiosClient .get(backupEndpoint) .then((response) => { resolve(response.data); }) .catch((error) => { reject(error); }); }); });Editar: si se trata de un duplicado, no he podido encontrar algo al respecto que sea específico para este punto. ¿Será porque es una mala práctica?
Edit2: gracias por las respuestas, tal vez debería aclarar mejor el flujo que quiero lograr:
obtener el punto final -> (si esto falla) obtener el punto final alternativo -> (si esto también falla) rechazar la promesa completa
De lo anterior, se podría simplificar con las mejores prácticas de reutilización, de la siguiente manera:
myMethod() { const PromiseHandler = url => { /** * this function recevies url * makes the request and return * a reposne form the end point */ return axiosclient.get(url).then(res => res.data) } return PromiseHandler(endpoint) .catch(() => { return PromiseHandler(backupEndPoint) }