Async Try-Catch: обработка ошибок в асинхронном коде JavaScript

Вот несколько методов, связанных с «асинхронной try-catch»:

  1. Async/Await: Async/await — это современный синтаксис для написания асинхронного кода в JavaScript. Он позволяет писать асинхронный код, напоминающий синхронный код, что упрощает обработку ошибок с помощью блоков try-catch.

Пример:

async function fetchData() {
  try {
    const response = await fetch('https://api.example.com/data');
    const data = await response.json();
    // Handle the data
  } catch (error) {
    // Handle any errors that occurred during the async operations
    console.log(error);
  }
}
  1. Обещания. Обещания — это еще один способ обработки асинхронных операций в JavaScript. Вы можете использовать методы thenи catchдля обработки решенных и отклоненных обещаний соответственно.

Пример:

function fetchData() {
  fetch('https://api.example.com/data')
    .then(response => response.json())
    .then(data => {
      // Handle the data
    })
    .catch(error => {
      // Handle any errors that occurred during the async operations
      console.log(error);
    });
}
  1. Промежуточное программное обеспечение для обработки ошибок. В серверных платформах, таких как Express.js, вы можете использовать промежуточное программное обеспечение для обработки ошибок для глобального обнаружения и обработки асинхронных ошибок. Этот подход централизует обработку ошибок и позволяет отделить логику ошибок от обычных обработчиков маршрутов.

Пример:

app.get('/data', async (req, res, next) => {
  try {
    const data = await fetchData();
    res.json(data);
  } catch (error) {
    next(error); // Pass the error to the error handling middleware
  }
});
app.use((err, req, res, next) => {
  // Handle the error and send an appropriate response
  res.status(500).json({ error: 'Internal Server Error' });
});