Хорошо, Ajax является асинхронным (это то, что означает «A»), поэтому вы должны сделать это асинхронным способом, который сводится к обратным вызовам.Что вам нужно сделать, это передать функцию обратного вызова в вашу внешнюю функцию, которую вы хотите вызвать ("callback", если хотите), когда запрос Ajax завершится.Вы можете просто дать ему «предупреждение» следующим образом:
function getFlickrSet(flickr_photoset_id) {
images = $.getJSON(url, alert); // <-- just the name of the function, no ()
}
var myImages = getFlickrSet(23409823423423);
// => An alert pops up with the data!
... но, скорее всего, вы напишите что-то вроде этого:
function doSomethingWithData(data) { // we'll use this later
alert(data); // or whatever you want
}
function getFlickrSet(flickr_photoset_id, callback) {
// new parameter here for a function ------^
// to be given here -------v
images = $.getJSON(url, callback);
return images // I HAVE NO DATA HERE
}
var myImages = getFlickrSet(23409823423423, doSomethingWithData);
// => Your function `doSomethingWithData` will be called the data as a parameter
// when the $.getJSON request returns.