Задать вопрос

Как ловить различные reject в promise и разрывать цепь?

Подскажите, пожалуйста, я запутался.
Предположим, есть некоторая функция, возвращающая различные состояния. Одно состояние - все ок, и различные виды когда что-то пошло не так. Нужно запускать обработчик этого состояния и выходить из цепи.
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


Как это изящно можно написать, чтобы код работал и читался нормально?
  • Вопрос задан
  • 387 просмотров
Подписаться 1 Оценить 5 комментариев
Пригласить эксперта
Ответы на вопрос 1
AMar4enko
@AMar4enko
then перенесите в начало цепочки, ну и на codepen пример непонятного кода
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы