Async await - это новый способ написания асинхронного кода, который пропускает использование обратного вызова и обещания. Он позволяет передавать данные без блокировки основного потока, а также более читабелен, вы можете думать уже, чтобы избежать обратного вызова.

Прежде чем начать, мы посмотрим, как выглядит синтаксис

Вы видели, что в двух строчках кода мы можем вернуть ответ? Ура! в этом красота async / await!

Здесь я использовал ключевое слово «fetch», это новый интерфейс API для получения сетевых вызовов, похожий на XMLHttpRequest, но fetch предоставляет многообещающую функцию, которая будет намного проще.

Обычно fetch принимает один обязательный аргумент (например, apiendpoint), путь, по которому ваш вызов api хочет выполнить, и возвращает обещание, которое разрешается в ответ.

Fetch также предоставляет все вызовы сетевых функций.

Теперь функция async возвращает обещание, поэтому вы можете просто вызвать .then и .catch возвращаемого значения.

Как вы можете видеть в приведенном ниже примере, способ более читабельный при написании с помощью async / await.

Чтобы использовать fetch в узле js, попробуйте модуль npm node-fetch, в браузере по умолчанию он будет доступен в объекте окна.

Еще одна важная особенность - возможность обрабатывать синхронные и асинхронные ошибки с помощью традиционных блоков try catch.

Если вам не знакомо использование выборки, используйте аксиомы или запрос, чтобы сделать то же самое.

Но помните, что рекомендуется использовать модули fetch ​​ и axios, поскольку по умолчанию это HTTP-клиент на основе обещаний, тогда как модулю запроса требуется дополнительный объект возврата обещания.

Теперь асинхронные функции доступны во всех последних версиях браузеров, используйте их во всех функциях, возвращающих обещания! Они не только делают ваш код более аккуратным, но и гарантируют, что функция всегда будет возвращать обещание.