Итак, я хочу получить данные, используя $ .getJSON, и сохранить их в переменной, чтобы использовать их позже.Даже если я объявил переменную 'subcount' перед $ .getJSON, я получаю ее как неопределенную, когда я действительно хочу что-то с ней сделать.Мой код выглядит так:
function loadSubs() {
channel_url = "https://www.googleapis.com/youtube/v3/channels?part=statistics&id="+channelId+"&key="+key;
var subcount;
$.getJSON(channel_url, function(data) {
subcount = data.items[0].statistics.subscriberCount;
console.log("In scope: "+subcount);
});
console.log("Out of scope: "+subcount);
do_something_with_data();
}
Консоль дает мне
Out of scope: undefined
In scope: 1364189
Кажется, что когда она выходит из области действия getJSON, переменная возвращается в свое неопределенное состояние.Я попытался инициализировать его с помощью
subcount = '';
Чтобы сделать его глобальным, но он делает то же самое, вместо получения неопределенного, я получаю пустую строку.Я также думаю, что тот факт, что на первый план выходит журнал вне области видимости, является частью проблемы.
Я что-то упустил?Если так, можете ли вы объяснить?Есть ли другой способ сделать это?
Спасибо
РЕДАКТИРОВАТЬ: я объявил 'subcount' на основе этого ответа в другом потоке jQuery getJSON сохранить результат в переменную