Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.02.2022, 10:30
Новичок на форуме
Отправить личное сообщение для tosvr Посмотреть профиль Найти все сообщения от tosvr
 
Регистрация: 04.02.2022
Сообщений: 3

Как вернуть значение из fetch?
Дорогие форумчане, помогите, пожалуйста, разобраться, как вернуть из функции, которая получает данные с api, значение за ее пределы.

Мой код:
let a = []

function getData(url) {
    return fetch(url)  
        .then(response => response.json())
        .then(json => (json))
}

getData('http://localhost:3000/api/test')   
    .then(output => {
        a = Object.values(output)
        return a
    })
    .catch(err => console.log(err))

console.log(a)

console.log(a) возвращает Undefined. Если переместить console.log(a) внутрь getData() вместо return, то нужные данные выводятся.
Не могу понять, как вывести данные за пределы функции. Буду очень благодарна за помощь и наводки.
Ответить с цитированием
  #2 (permalink)  
Старый 08.02.2022, 11:34
Аватар для Error
Интересующийся
Отправить личное сообщение для Error Посмотреть профиль Найти все сообщения от Error
 
Регистрация: 30.04.2020
Сообщений: 17

Здравствуйте.
async function getData(url) {
  const response = await fetch(url);
  return await response.json();
}
Ответить с цитированием
  #3 (permalink)  
Старый 08.02.2022, 11:54
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от tosvr
console.log(a) возвращает Undefined.
Запрос асинхронный...
Когда ты выводишь, данные еще не получены.

Либо дожидайся ответа (как в примере Error)...
Либо все делай при обработке ответа.
Сообщение от tosvr
.then(output => {
        a = Object.values(output)
        // тут
    })
Ответить с цитированием
  #4 (permalink)  
Старый 08.02.2022, 13:59
Новичок на форуме
Отправить личное сообщение для tosvr Посмотреть профиль Найти все сообщения от tosvr
 
Регистрация: 04.02.2022
Сообщений: 3

Большое спасибо!
Ответить с цитированием
  #5 (permalink)  
Старый 08.02.2022, 14:00
Новичок на форуме
Отправить личное сообщение для tosvr Посмотреть профиль Найти все сообщения от tosvr
 
Регистрация: 04.02.2022
Сообщений: 3

Сообщение от ksa Посмотреть сообщение
Запрос асинхронный...
Когда ты выводишь, данные еще не получены.

Либо дожидайся ответа (как в примере Error)...
Либо все делай при обработке ответа.
Спасибо Воспользовалась этим вариантом!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить значение input зная name формы? Wimko Общие вопросы Javascript 1 12.04.2020 18:18
async/await как получить вернуть значение из функции dpts Events/DOM/Window 7 02.04.2020 09:56
Как получить значение цвета из color picker razorg1991 jQuery 1 06.10.2014 09:06
Как получить значение переменной из callback функции? Хиросим AJAX и COMET 5 24.04.2012 09:32
Как в IE динамически установить значение события onClick? Гость Элементы интерфейса 6 16.01.2011 23:46