Sobes.tech
Back to questions
Middle+
2

Как сделать так, чтобы конструкция try/catch заработала с Promise? Как сделать Promise синхронным через async/await?

Companies where asked
VK Tech

Answer from AI

sobes.tech AI

Чтобы конструкция try/catch работала с Promise, нужно использовать ключевые слова async/await. Обычные Promise обрабатываются через методы .then() и .catch(), но для удобства и более читаемого кода можно обернуть вызов Promise в async функцию и использовать await, что позволяет писать асинхронный код в синхронном стиле.

Пример:

async function fetchData() {
  try {
    const response = await fetch('https://api.example.com/data');
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error('Ошибка при загрузке данных:', error);
  }
}

fetchData();

Здесь await "приостанавливает" выполнение функции до завершения Promise, а ошибки, возникающие внутри Promise, ловятся в блоке catch. Таким образом, Promise становится "синхронным" по восприятию, хотя под капотом остаётся асинхронным.