Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.04.2022, 18:02
Аспирант
Отправить личное сообщение для kpripper Посмотреть профиль Найти все сообщения от kpripper
 
Регистрация: 02.04.2011
Сообщений: 33

Не могу получить данные из fetch в переменную
В общем вот такая проблема, получаю через fetch объект, в консоль свойство объекта могу показать, а присвоить его переменной не могу.
Помогите пжл присвоить данные переменной.

let age = 0

fetch('https://randomuser.me/api/?results=10')
    .then((resp) => resp.json())
    .then(function (data) {
      console.log(data.results[0].dob.age+" years"); //displays the correct age in the console
      age = data.results[0].dob.age;
      return age;
    }); 

console.log(age+" age console");
// why doesn't fetch assign age variable data? how to assign data.results[0].dob.age to the variable age?

Последний раз редактировалось kpripper, 23.04.2022 в 18:05.
Ответить с цитированием
  #2 (permalink)  
Старый 23.04.2022, 20:21
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от kpripper
Помогите пжл присвоить данные переменной
Что у тебя в
Сообщение от kpripper
function (data) {console.log(data)}
?
Ответить с цитированием
  #3 (permalink)  
Старый 23.04.2022, 20:33
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,712

Потому, что строка 11
console.log(age+" age console");

Выполнится раньше, чем придет ответ от сервера и сработают все then

Сделай так
l
et age = 0
 
const resp = await fetch('https://randomuser.me/api/?results=10');
const data = await resp.json();
      console.log(data.results[0].dob.age+" years"); //displays the correct age in the console
age = data.results[0].dob.age;

console.log(age+" age console");
Ответить с цитированием
  #4 (permalink)  
Старый 23.04.2022, 23:30
Аспирант
Отправить личное сообщение для kpripper Посмотреть профиль Найти все сообщения от kpripper
 
Регистрация: 02.04.2011
Сообщений: 33

А, понятно. Еще была ошибка await is only valid in async functions and the top level bodies of modules
- завернул все в async function - все ок.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить данные по http ссылке Ракун Events/DOM/Window 8 17.08.2017 17:24
Получить данные JSON без jQUERY strongest Javascript под браузер 17 19.01.2014 20:07
Получить данные ajax запросом mue Общие вопросы Javascript 2 17.12.2012 12:49
Как получить данные из opener в open melihovgv Javascript под браузер 1 07.12.2012 10:36
Не могу получить высоту из css asci Общие вопросы Javascript 5 30.03.2009 13:31