@ivan_kholodov

В чём отличие использования промиса совместно с catch и просто try/catch?

Добрый день! Просветити пожалуйста такой момент:
В чём существенное отличие использования промиса вот так:

logout(что-то передается здесь)
.catch(({ error, password}) => {
  switch (error) {
    ...различные обработки
  }
}


и вот так:

try {
  logout(что-то передается здесь)
} catch ({ error, password }) {
  switch(error) {
    ...различные обработки
}
}


второй вариант не работает и код не заходит в catch если вызвать ошибку
  • Вопрос задан
  • 65 просмотров
Решения вопроса 2
alex4answ
@alex4answ
1. вариант отловит ошибку в промисе
2. вариант не отловит ошибку в промисе, тк он асинхронный, для того чтобы работало нужно добавить async await
Ответ написан
sergiks
@sergiks Куратор тега JavaScript
♬♬
синхронный код: try {} catch() {}
асинхронный код: .catch()

во втором варианте, т.к. logout() асинхронная, выполняется не сразу:
try {
  logout(что-то передается здесь)
} catch ({ error, password }) {
  switch(error) {
    ...различные обработки
  }
}
console.log("Я здесь был!");

В консоль выведется до того, как выкинется ошибка.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Intspirit Краснодар
от 80 000 до 150 000 ₽