Как написать асинхронную функцию?

Асинхронные функции в 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().