В 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()
.