Что такое async/await?

Готовлюсь к собеседованиям и систематизирую знания, сегодня async/await и его отличие от promise.

Если проводить аналогию, то промисы можно сравнить с получением чека на заказ, а async/await — это возможность просто сказать: я подожду, пока еда не будет доставлена, и потом сразу начну есть. По сути, это синтаксический сахар над промисами, который делает код более линейным и читаемым.

Ключевое слово async делает функцию асинхронной, и вот в чем заключается магия: какое бы значение вы ни вернули из такой функции, она всегда обернет его в промис. А оператор await заставляет функцию ждать, пока не выполнится промис, и только потом двигаться дальше, извлекая из промиса значение.

Самая большая магия в том, что код с await выглядит как обычный синхронный. Мы можем писать его последовательно, без цепочек then, и при этом он не блокирует главный поток браузера. Ошибки же можно ловить привычным try catch, что делает обработку исключений интуитивно понятной.

#вопросы_для_собеседования #javascript #frontenddevelopment #войтивайти #асинхронность