Назад к вопросам
Junior
73
questionbank

Как можно обработать ошибку (reject) промиса в асинхронной функции?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Можно использовать try...catch.

async function processData() {
  try {
    const result = await fetchData(); // fetchData() может вернуть промис, который будет отклонён
    console.log('Данные успешно получены:', result);
  } catch (error) {
    console.error('Ошибка при получении данных:', error);
    // Здесь можно выполнить дополнительные действия для обработки ошибки
    // Например, показать сообщение пользователю или записать лог
  }
}

// Альтернативный способ с .catch() (менее распространённый в async/await)
async function processDataAlt() {
  await fetchData()
    .then(result => {
      console.log('Данные успешно получены:', result);
    })
    .catch(error => {
      console.error('Ошибка при получении данных:', error);
    });
}

Более предпочтительным и идиоматичным для async/await является использование try...catch. Он позволяет централизовать обработку ошибок в одном блоке и выглядит более синхронным.