@ivan_kholodov

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

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

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


и вот так:

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


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

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

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

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

Войти через центр авторизации
Похожие вопросы