AJAX-вызовы являются асинхронными, что означает, что $.ajax
вызов не будет ожидать ответа сервера.
Следовательно, ваша LoadAggregates
функция завершает выполнение до того, как ответит сервер.
Чтобы получить ответ сервера, вашей функции LoadAggregates
необходимо принять параметр обратного вызова, как это делает $.ajax
.
Например:
Data.LoadAggregates = function(callback) {
$.ajax({
type: "POST",
url: "asdf.asmx/GetAggregates",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
//Do something to the data if you want to
callback(data); //You can pass any parameters you want
},
error: function(msg) {
alert("error" + msg);
}
});
};
Тогда вы бы назвали это так:
Blah.Data.LoadAggregates(function(jsonResult) {
alert(jsonResult.length);
});