@Mr_Epic
Web программист

Как правильно выводить ошибки в Promise?

Как правильно выводить точные ошибки пользователю из промисов? Вот пример кода:
Promise.resolve('test@mail.ru')
.then((email)=>checkFormatEmail(email).catch((err) => {throw 'Ошика формата почты';}))
.then((email)=>checkEmailAvailability(email).catch((err) => {throw 'Почта занята';}))
.catch((err) => {
    ctx.status = 500;
    ctx.body = err;
});

Это выглядит очень громоздко.
Как вообще правильно выводить сообщения об конкретной ошибки в промисах?
На сколько я знаю, выводить ошибку клиенту из .catch() - вообще не правильно, так-как может вывестись не то что нужно, не обработанная ошибка например.
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
filgaponenko
@filgaponenko
frontend developer
Добрый день.
Брошенные исключения "проваливаются" в catch блок, поэтому правильно ловить ошибки в catch.
Чтобы решить проблему разделения ошибок для пользователя и всех прочих ошибок могу предложить завести свои ошибки и в catch по типу ошибки определять какая именно реакция системы необходима.

Вот в нагрузку хорошая статья по промисам, возможно там тоже найдется что нибудь, что натолкнет вас на верное решение.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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