0
fetch('./products.json')
    .then((res) => res.json())
    .then((data) => {
        console.log(data)
    });

Данная конструкция дает вот такой результат:

введите сюда описание изображения

Прекрасно, получили массив объектов, как и было задумано. Но! Как присвоить этот массив переменной?

Делал так:

json = fetch(url).then((res) => {return res.json()})

Здесь видно, что есть наш массив, но как его достать? Я не понимаю синтаксис [[PromiseValue]] и, если написать это, как литерал, будет ошибка (.[[PromiseValue]])

введите сюда описание изображения

Пробовал так:

let json;
fetch(url)
    .then((res) => res.json())
    .then((data) => {
        json = data;
    });

json будет undefined

Подскажите, как результат fetch присвоить переменной. Спасибо!

Igor
  • 1,211
  • https://learn.javascript.ru/promise результат fetch это промис – Alexey Ten Mar 23 '18 at 08:10
  • Смотря как вы планируете использовать дальше эту переменную ... json = data; - это у вас работает, вот только процесс асинхронный и вы присваиваете значение несколько позже, нежели ожидаете. – MedvedevDev Mar 23 '18 at 08:16
  • @Darth у тебя эта ссылка в закладках? – Alexey Ten Mar 23 '18 at 09:14
  • @AlexeyTen Нет, в автозаполнении) ни дня без этого вопроса – Darth Mar 23 '18 at 09:18
  • А насчет ссылок в закладках, рекомендую тс посмотреть https://ru.stackoverflow.com/questions/509990/%D0%A1%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5-%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-javascript-%D0%BF%D1%80%D0%B8-%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%87%D0%B5-%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%B0-%D0%BF%D0%BE-%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B5 – Darth Mar 23 '18 at 09:19

0 Answers0