Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: async/await, try catch, error handling, promise, wrapper

Как обернуть асинхронную функцию так, чтобы гарантированно обработать возможную ошибку?

Проверяет понимание обработки ошибок в асинхронных функциях с использованием try/catch или оберток.

Короткий ответ

Для обработки ошибок в асинхронных функциях используйте конструкцию try/catch внутри async функции. Если нужно гарантированно обработать ошибку, можно создать функцию-обертку, которая перехватывает reject промиса и передает его в catch. Это предотвращает необработанные исключения и делает код надежнее.

Длинный ответ

Обработка ошибок в асинхронных функциях

Асинхронные функции в JavaScript возвращают Promise. Если внутри такой функции возникает исключение, Promise переходит в состояние rejected. Чтобы гарантированно обработать ошибку, необходимо использовать конструкцию try/catch внутри async функции или обернуть вызов в специальную функцию-обработчик.

Пример с try/catch

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

Функция-обертка для гарантированной обработки

Иногда требуется, чтобы ошибка не осталась необработанной. Можно создать обертку, которая перехватывает reject и выполняет заданное действие:

function safeAsync(asyncFn) {
  return function(...args) {
    return asyncFn(...args).catch(error => {
      console.error('Ошибка в асинхронной функции:', error);
      // Можно вернуть значение по умолчанию или пробросить ошибку
      return null;
    });
  };
}

const safeFetchData = safeAsync(fetchData);
safeFetchData().then(data => console.log(data));

Применение

Такой подход используется в веб-приложениях для обработки сетевых запросов, работы с базами данных, файловыми операциями и любыми другими асинхронными задачами. Гарантированная обработка ошибок предотвращает падение приложения и улучшает пользовательский опыт.

Вывод: Используйте try/catch внутри async функций или создавайте обертки для централизованной обработки ошибок. Это делает код устойчивым к сбоям и упрощает отладку.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#async/await

#try catch

#error handling

#promise

#wrapper

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию