Как поместить выборочные данные в переменную

У меня есть код, который приводит undefined всякий раз, когда я пытаюсь получить результаты в переменную

var data;
fetch('./js/samplejson.json')
    .then((res) => res.json())
    .then(output => {
        var data = output;
    } 
)
console.log(data);

Как я могу получить результат

[1, 2, 3]

внутренняя переменная данных

2 ответа

Решение

fetch() вызов асинхронный. Он возвращается до того, как данные возвращаются с сервера. Когда вы пытаетесь получить доступ к данным после вызова, вы пытаетесь получить доступ к ним до того, как сервер ответит.

Вам нужно обрабатывать эти данные внутри обратного вызова или в функции, вызываемой из этого обратного вызова. Другими словами, где вы делаете var data = output;не делай этого. Это не поможет удалить var поэтому код устанавливает глобальный data переменная, как предлагается в комментарии. Проблема не в объеме, а в сроках. Обработать output данные прямо внутри обратного вызова, или вызвать другую функцию и передать output к этому.

Вы можете получить данные из журнала здесь.

fetch('./js/samplejson.json')
    .then((res) => res.json())
    .then(output => {
        var data = output;
        console.log(data);
    } 
)
Другие вопросы по тегам