Подскажите, пожалуйста, я запутался.
Предположим, есть некоторая функция, возвращающая различные состояния. Одно состояние - все ок, и различные виды когда что-то пошло не так. Нужно запускать обработчик этого состояния и выходить из цепи.
function p1(inputData) {
return new Promise((resolve, reject) => {
switch(inputData) {
case SUCCESS_0:
resolve("Success 0");
break;
case ERROR_0:
reject("Reason 0");
break;
case ERROR_1:
reject("Reason 1");
break;
case ERROR_2:
reject("Reason 2");
break;
}
});
}
нужно на выходе что-то вроде
p1(inputData)
.catch(ERROR_0, () => processError_0()) //и выйти из цепочки
.catch(ERROR_1, () => processError_1()) //и выйти из цепочки
.catch(ERROR_2, () => processError_2()) //и выйти из цепочки
.then(ifSuccess_0()); //только если не вылезла ошибка в p1
Как это изящно можно написать, чтобы код работал и читался нормально?