🐱🐱 Что такое async и await ?



async/await — это синтаксический сахар для работы с асинхронными операциями, делающий код, работающий с асинхронными действиями, такими как запросы к серверу или чтение файлов, более читаемым и легким для понимания. Этот синтаксис был введен в ES2017 (ES8) и строится на промисах (Promises).



- Ключевое слово async



Используется перед объявлением функции. Это позволяет функции автоматически возвращать промис. Если эта функция возвращает не промис, то возвращаемое значение будет автоматически обернуто в промис.

async function fetchData() {

return 'данные';

}



fetchData().then(data => console.log(data)); // выводит "данные"




- Ключевое слово await



Используется для ожидания результата промиса внутри асинхронной функции async. Оно приостанавливает выполнение асинхронной функции до тех пор, пока промис не выполнится (т.е. не будет разрешен или отклонен). ЕЕ можно использовать только внутри асинхронных функций.

async function fetchData() {

let data = await fetch('https://api.example.com/data');

let json = await data.json();

return json;

}




В этом примере функция fetchData сначала ожидает завершения HTTP-запроса к серверу, а затем ожидает завершения преобразования ответа в формат JSON. Весь этот процесс асинхронный, но благодаря await код выглядит как синхронный.



Преимущества использования:



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

Упрощение обработки ошибок: В асинхронных функциях с await можно использовать стандартный синтаксис try/catch для обработки ошибок, что делает код единообразнее.

Избегание "callback hell": Использование async/await позволяет избежать сложностей с вложенными коллбэками, которые могут возникнуть при использовании промисов или старого стиля асинхронного кода с коллбэками.



Важно помнить:



- await приостанавливает выполнение только текущей асинхронной функции, не блокируя выполнение другого кода.

- await может использоваться только внутри функций, объявленных с async.

- Внутри асинхронных функций async можно использовать множество операторов await для последовательного выполнения зависимых друг от друга асинхронных операций.



async/await сделал написание асинхронного кода более интуитивно понятным и удобным, существенно улучшив разработку асинхронных приложений.



Str (IT-Community) | #ВопросыДляСобесов