M
M
Max Fruit2016-04-13 20:46:56
JavaScript
Max Fruit, 2016-04-13 20:46:56

Sequential function call when working with VK API?

Hello! Trying to work with the VK open API, I ran into this problem:
Why can't I display the value of the startFrom variable in the console?

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);}); // пытаюсь сделать последовательный вызов, при котором следующая функция выполнится только после завершения предыдущей


StartFrom is inserted into html without problems, but I can’t display its value in the console (writes Uncaught ReferenceError: starFrom is not defined). And one more thing: if
console.log(starFrom); replace, for example, with alert("Hello world!");, then the alert will be executed, but before the query results are inserted into the html. CHADNT?

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question