Promise и async/await: асинхронный результат
Как дождаться результата, обработать отказ и не путать ожидание с блокировкой всей страницы.
Основная идея
Promise представляет будущий результат операции: успешное значение или ошибку. Async-функция возвращает Promise. Внутри неё await приостанавливает продолжение этой функции до завершения ожидаемой операции, но не превращает ожидание в синхронную блокировку всего браузера.
Ошибку ожидаемого Promise можно обработать try/catch. Независимые операции иногда удобно запустить вместе и дождаться через Promise.all. Однако этот метод не отменяет остальные операции автоматически при отказе одной из них.
Пример JavaScript
async function getTitle() {
return "HTML";
}
async function main() {
try {
const title = await getTitle();
console.log(title);
} catch (error) {
console.error("Не удалось получить название");
}
}
main();
Даже без сетевого запроса getTitle возвращает Promise благодаря async. Await получает его успешное значение.
Частая ошибка
Самостоятельная проверка
Замените return на throw new Error в отдельном тесте. Убедитесь, что ошибка попала в catch и не была представлена как успешный результат.
Код здесь показан для изучения. Встроенная песочница сайта выполняет только HTML/CSS. JavaScript проверяйте в собственном учебном файле или консоли своего тестового проекта; не вставляйте непонятный код на страницах с личными данными.
Следующие темы: сетевые запросы, функции.