Проверяет понимание обработки ошибок в асинхронных функциях с использованием try/catch или оберток.
Асинхронные функции в JavaScript возвращают Promise. Если внутри такой функции возникает исключение, Promise переходит в состояние rejected. Чтобы гарантированно обработать ошибку, необходимо использовать конструкцию try/catch внутри async функции или обернуть вызов в специальную функцию-обработчик.
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
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию