@ivan_kholodov

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

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

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


и вот так:

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


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

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

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

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

Похожие вопросы
22 нояб. 2024, в 06:06
1500 руб./в час
22 нояб. 2024, в 06:04
1 руб./за проект
22 нояб. 2024, в 03:54
1500 руб./за проект