Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как вернуть значение из fetch? (https://javascript.ru/forum/misc/83664-kak-vernut-znachenie-iz-fetch.html)

tosvr 08.02.2022 10:30

Как вернуть значение из 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, то нужные данные выводятся.
Не могу понять, как вывести данные за пределы функции. Буду очень благодарна за помощь и наводки.

Error 08.02.2022 11:34

Здравствуйте.
async function getData(url) {
  const response = await fetch(url);
  return await response.json();
}

ksa 08.02.2022 11:54

Цитата:

Сообщение от tosvr
console.log(a) возвращает Undefined.

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

Либо дожидайся ответа (как в примере Error)...
Либо все делай при обработке ответа.
Цитата:

Сообщение от tosvr
.then(output => {
        a = Object.values(output)
        // тут
    })


tosvr 08.02.2022 13:59

Большое спасибо!

tosvr 08.02.2022 14:00

Цитата:

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

Либо дожидайся ответа (как в примере Error)...
Либо все делай при обработке ответа.

Спасибо :thanks: Воспользовалась этим вариантом!


Часовой пояс GMT +3, время: 23:50.