在get函数完成时从$ .get函数调用数组

时间:2016-11-15 01:40:24

标签: javascript jquery ajax get

我需要帮助调用cagedMovies数组,当它被填充时,两个异步函数都完成了。

我一直在尝试console.log cagedMovies,一旦$ .get函数完成,它就是一个对象数组,所以我可以使用该数组来获得更多功能。

当两个函数都完成时,我尝试使用jQuery.when和jQuery.done,虽然我收到警报,但是从Chrome控制台记录的数组表示下面的"值是刚刚评估过的"。 / p>

如何为另一个函数设置cagedMovies数组?

var cagedMovies = [];

$.when(pageLoop(), getMovies()).done(function(){
    alert("Done");
    console.log(cagedMovies); 
});

function pageLoop(){ 
    $.get(movieUrl, function(pageresponse) {
        for(var p = 1; p <= pageresponse['total_pages'] + 1; p++){
            getMovies(p);
        }
    }); 
}

function getMovies(page) {
    var p = page;
    var movieUrl = "https://api.themoviedb.org/3/discover/movie?api_key=" + apiKey + "&language=en-US&" + sort + "&include_adult=false&include_video=true&page=1&with_people=" + nicolasCage + "&page=" + page;
    $.get(movieUrl, function(response) {
      for (var m = 0; m < response.results.length; m++){
        //Create a Genre array for each movie.
        var genre_array = [];
        //Set Genre response to a variable
        var genre_response = response['results'][m]['genre_ids'];
          for (var i = 0; i < genre_response.length; i++) {
            // Find the Genre by Genre ID
            var genre_obj = getGenreById(genre_response[i]);
            genre_array.push(genre_obj[0].name);
          };
        // function - makeObject
        var movieObject = createMovieObject(response['results'][m], genre_array);
          cagedMovies.push(movieObject);
        };
    }); 
};

0 个答案:

没有答案