JS: Как сделать возврат значения из `fetch`?

В JavaScript, функция fetch() возвращает промис, который представляет собой асинхронный результат сетевого запроса. Поскольку промис является объектом, невозможно просто вернуть значение из fetch() и назначить его переменной внутри функции, вызывающей fetch(). Однако, есть несколько способов получить значение fetch() в вашей программе.

1. Используйте async/await:

async function getData() {
  try {
    const response = await fetch('https://api.example.com');
    const data = await response.json();
    return data;
  } catch (error) {
    console.log(error);
    return null;
  }
}

getData().then(data => {
  console.log(data);
});

В этом примере, мы определяем асинхронную функцию getData(), которая использует ключевое слово await для ожидания ответа от fetch(). Мы затем используем метод json() для преобразования ответа в объект JavaScript. Функция getData() возвращает данные внутри промиса. Мы можем использовать метод then() для доступа к возвращенным данным.

2. Используйте цепочку .then():

function getData() {
  return fetch('https://api.example.com')
    .then(response => response.json())
    .then(data => {
      return data;
    })
    .catch(error => {
      console.log(error);
      return null;
    });
}

getData().then(data => {
  console.log(data);
});

В этом примере, мы используем .then() для последовательного вызова функций обратного вызова после выполнения fetch(). Это позволяет нам обрабатывать данные и ошибки, передавая их дальше по цепочке возвратных значений.

Оба этих подхода позволяют получить данные из fetch() внутри функции, а затем использовать полученные данные в дальнейшей работе с ними. Значение fetch() может быть возвращено и использовано в других частях кода программы, но только с помощью промисов или цепочек .then().