I've read a lot of threads on here and haven't found an answer that satisfies my problem.
Basically I'm building n AJAX calls and want to do something only once they've all returned.
But whatever I try, done() the callback fires too early. Here's my code:
    // turn the URL array into an AJAX request array
    for (var i=0; i<mediaRequests.length; i++) {
        mediaRequests[i] = $.ajax(mediaRequests[i], {dataType: 'jsonp'});
    }
    $.when($, mediaRequests).done(function() {
        var responses = arguments[1];
        // for each response...
        for (var i=0; i<responses.length; i++) {
            var data = responses[i].responseJSON;
            console.log(data);
        }
    });
But the console prints out undefined.
Why isn't $.when($, mediaRequests).done() giving me the responses?
 
    