Как создать функцию, которая будет выполняться асинхронно?

Изображение к вопросу
  • 9 сентября 2023 г. 3:26
Ответы на вопрос 2
Для создания асинхронной функции в JavaScript можно использовать ключевое слово `async` перед определением функции. Внутри такой функции можно использовать `await` для приостановки выполнения и ожидания завершения асинхронной операции.

В данном конкретном примере, чтобы получить страницу с локального сайта, можно использовать `fetch`, который возвращает объект `Promise`. Мы можем использовать его внутри асинхронной функции и дождаться выполнения запроса с помощью `await`.

Пример кода:

```javascript
async function getElem() {
  console.log('Начало');
  
  try {
    const response = await fetch('http://путь-к-странице'); // Замените 'http://путь-к-странице' на фактический путь к странице
    const data = await response.text();
    
    const result = { go2: data }; // Создаем объект с полученными данными
    console.log('Результат:', result);
  } catch (error) {
    console.error('Ошибка:', error);
  }
  
  console.log('Конец');
}

getElem();
```

В этом примере `await fetch('http://путь-к-странице')` ожидает выполнения запроса и возвращает данные. Затем мы преобразуем эти данные в текст с помощью `await response.text()`. В итоге мы создаем объект `result`, в котором записываем полученные данные в свойство `go2`.

В результате, при вызове функции `getElem`, она выполнится асинхронно: сначала будет выведено "Начало", затем выполнится запрос к локальному сайту, результат будет сохранен в объекте `result`, и наконец, будет выведено "Результат" с этим объектом и "Конец".

Обратите внимание, что `fetch` может вызывать ошибку, например, если указанный путь недоступен. Поэтому мы оборачиваем выполнение этой операции в блок `try...catch` для обработки возможных ошибок.
- Асинхронная функция всегда возвращает промис.
- Рекомендуется использовать промисы.
- Функция `getElem` отправляет GET-запрос на указанный URL и возвращает элемент, найденный с помощью селектора.
- Создается новый промис с помощью конструктора `Promise`.
- При успешном выполнении запроса возвращается элемент.
- При ошибке выполнения запроса возвращается сообщение об ошибке.
Похожие вопросы