Проверяет знание нативного механизма JavaScript для последовательного выполнения асинхронных сценариев с ожиданием ответа.
В JavaScript асинхронные операции (запросы к серверу, таймеры, чтение файлов) не блокируют основной поток. Для последовательных сценариев, где каждый шаг должен дождаться завершения предыдущего, используется связка промисов и синтаксиса async/await. Функция, объявленная с ключевым словом async, всегда возвращает промис, а оператор await приостанавливает её выполнение до тех пор, пока переданный промис не разрешится.
Когда интерпретатор встречает await, он приостанавливает выполнение текущей функции и возвращает управление в event loop. После разрешения промиса выполнение возобновляется с результатом. Это позволяет писать код, который читается как последовательность шагов, без вложенных колбэков или цепочек .then().
async function onboarding() {
const step1 = await askUser('Введите имя');
const step2 = await askUser('Введите email');
const step3 = await askUser('Подтвердите пароль');
return { step1, step2, step3 };
}
function askUser(question) {
return new Promise(resolve => {
// имитация ожидания ввода пользователя
setTimeout(() => resolve(prompt(question)), 1000);
});
}
onboarding().then(data => console.log(data));Здесь каждый вызов askUser возвращает промис, который разрешается после ввода пользователя. await гарантирует, что следующий вопрос появится только после ответа на предыдущий.
Механизм широко используется в веб-приложениях: загрузка данных по цепочке, обработка форм с валидацией на сервере, анимации с последовательными этапами. Он также лежит в основе многих библиотек для управления асинхронными потоками.
Вывод: async/await — стандартный способ реализации последовательных асинхронных сценариев в современном JavaScript. Его стоит применять везде, где требуется читаемый и поддерживаемый код с зависимыми шагами, особенно в пользовательских интерфейсах с многошаговыми процессами.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию