Вопрос проверяет понимание гарантированного выполнения кода после асинхронных операций, независимо от результата промиса.
При работе с асинхронными операциями, такими как запросы к серверу или чтение файлов, часто требуется выполнить код после завершения операции, независимо от её результата. Например, нужно скрыть индикатор загрузки, закрыть соединение с базой данных или освободить память. Блок finally в промисах и конструкции async/await гарантирует, что этот код будет выполнен в любом случае.
Метод finally возвращает новый промис, который разрешается после выполнения исходного промиса, но перед тем, как будет выполнен любой обработчик then или catch. Если в finally возникнет исключение, оно будет передано дальше по цепочке. Это делает finally идеальным местом для очистки ресурсов.
async function fetchData() {
showLoader();
try {
const response = await fetch('/api/data');
const data = await response.json();
return data;
} catch (error) {
console.error('Ошибка:', error);
throw error;
} finally {
hideLoader(); // Выполнится всегда
}
}Используйте finally для гарантированного выполнения кода очистки, такого как закрытие соединений, освобождение блокировок или скрытие UI-элементов, чтобы избежать утечек ресурсов и некорректного состояния приложения.
Уровень
Рейтинг:
4
Сложность:
4
Навыки
JavaScript
Node.js
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию