У меня есть функция javascript, которая запрашивает некоторые данные ajax и возвращает объект JSON. Тогда он должен вернуть объект.
Проблема в том, что я не знаю, как заставить функцию возвращаться из обратного вызова Ajax. Конечно
myFunction: function() {
$.get(myUrl, function(data) {
return data;
});
}
не работает, потому что внутренняя функция возвращается вместо внешней.
С другой стороны, выполнение того, что мне нужно, только внутри обратного вызова сломает мое подразделение MVC: этот код находится в модели, и я бы хотел использовать объект результата в контроллере.
Временное решение -
myFunction: function() {
var result = $.ajax({
url: myUrl,
async: true,
dataType: 'text'
}).responseText;
return eval(result);
}
, который имеет недостаток блокировки браузера во время ожидания ответа (и использования eval, которого я бы предпочел избежать).
Есть ли другие решения?