Sobes.tech
Junior

Как можете да обработите грешка (reject) на промиса в асинхронна функция?

sobes.tech AI

Отговор от 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);
    });
}

Използването на try...catch е по-препоръчително и идиоматично за async/await. Позволява централно управление на грешките в един блок и изглежда по-синхронно.