Асинхронные функции в JavaScript используются для выполнения операций, которые занимают больше времени, например, загрузка данных с сервера или выполнение сложных вычислений. Программа в таких случаях не должна ждать окончания выполнения асинхронной функции, чтобы продолжить свою работу, иначе она будет блокирована.
Для создания асинхронной функции в JavaScript можно использовать синтаксис async/await
, который был добавлен в стандарт ECMAScript 2017. При этом функция должна быть отмечена ключевым словом async
, а асинхронные операции могут быть описаны с помощью ключевого слова await
.
Рассмотрим пример асинхронной функции, которая будет загружать данные с сервера:
async function fetchData() { try { const response = await fetch('https://example.com/data'); const data = await response.json(); console.log(data); } catch (error) { console.error('Error:', error); } }
В данном примере функция fetchData
является асинхронной, так как помечена ключевым словом async
. Внутри функции используется ключевое слово await
для ожидания выполнения операций.
В первой строке функции используется функция fetch
, которая отправляет GET-запрос на указанный URL и возвращает промис. Затем с помощью await
мы ожидаем, пока промис будет выполнен, и получаем результат в переменную response
. Следующая строка использует метод json()
промиса ответа, чтобы получить данные в формате JSON, и также ожидает выполнения этого промиса.
В случае успешного выполнения операций мы выводим результат в консоль, а в случае ошибки — выводим сообщение об ошибке.
Использование асинхронных функций позволяет писать код, который становится более линейным и понятным, так как асинхронные операции внутри асинхронной функции будут выполняться последовательно, а не вложенными колбэками или цепочками .then()
.