Вы должны адаптировать свой код так, чтобы вы могли передавать обратный вызов на someFunction
, который вы выполняете, когда завершен вызов AJAX.
Единственный способ ждать дляЧтобы завершить AJAX-вызов, нужно изменить его на синхронный, но это сильно не рекомендуется, поскольку он полностью блокирует браузер на время вызова AJAX.
Поскольку вы уже используете библиотеку jQuery, этот процесс callbacks
становится намного проще.Вместо того, чтобы возвращать переменную, как в данный момент, я бы возвратил объект jQuery AJAX (, который имеет интерфейс обещаний с 1.6 ), так что вы можете легко добавить к нему обратные вызовы:
function someFunction () {
return jQuery.ajax('some/url.php', {
// whatever
});
}
var myVari = someFunction();
myVari.done(function (data) {
$.each(data, function(){/*code for each*/});
});