Всем привет! Пытаясь работать с VK open API, столкнулся вот с какой задачей:
Почему не получается отобразить startFrom в консоли?
var startFrom = ""; // Глобальная переменная
// делаю запрос к vk api
function s1() { VK.api("newsfeed.search", {"v":"5.50","q":"привет", "extended":"1", "count":"200", "fields":"photo_50"}, function(data) {
// получаю response и извлекаю нужные данные
startFrom = data.response.next_from; // next_from - номер следующей страницы, который используется для извлечения максимального количества постов
// извлечение параметров профиля
var profilesCount = data.response.profiles.length;
var profilesStr = '';
for (var i=0; i<profilesCount; i++) {
profilesStr +='<img src=' + data.response.profiles[i].photo_50 + '>' + '<a href="https://vk.com/id' + data.response.profiles[i].id + '"' + '>' + data.response.profiles[i].first_name + ' ' + data.response.profiles[i].last_name + '</a>' + '<br/>';
document.getElementById('friends_list').innerHTML = profilesStr + startFrom; // вставляю данные в html
}
});
}
$.when(s1()).done(function () {console.log(startFrom);}); // пытаюсь сделать последовательный вызов, при котором следующая функция выполнится только после завершения предыдущей
В html startFrom вставляется без проблем, но вот в консоль я его значение вывести не могу (пишет Uncaught ReferenceError: starFrom is not defined). И еще один момент: если
console.log(starFrom); заменить, например, на alert("Hello world!");, то alert выполнится, но до того, как в html будут вставлены результаты запроса, а если alert(startFrom), то всплывает пустое окно. ЧЯДНТ?