У меня есть два js-файла, то есть myJs1.js и myJs2.js. Из myJs1.js вызывается метод myJs2.js.Как вернуть несколько значений из события успеха ajax
Я хочу вернуться r1
и r2
в результаты (в myJs1.js)
Я попытался это: я объявил r1
и r2
переменных перед вызовом AJAX и после Ajax вызова я добавил:
return [r1,r2];
Но оно возвращает r1
и r2
как undefined
. Когда я исследовал проблему, я наткнулся на то, что добавление async: false
может работать, но у нее так много проблем (например, замораживание браузера). Тем не менее, я попробовал это и до сих пор не смог получить значения r1
и r2.
Примечание: Я использую AJAX в первый раз, так что имейте это в виду.
EDIT: В Js1 есть вызов ajax, в котором на этапе события вызывается метод. Я хочу, чтобы получить доступ к результату для вызова другого метода в СП1
EDIT: СМОТРИТЕ ЗДЕСЬ ДЛЯ КОДА
myJS1:
function method()
{
$.ajax({
type: "GET",
dataType: "json",
url: "http://127.0.0.1:8000/***/***",
success: function(response){
result=methodOfmyJs2(response);
load1(r1); //r1 from result
load2(r2); //r2 from result
}
})
}
myJs2:
function methodOfmyJs2(data)
{
$.ajax({
type: "GET",
data:SomeData,
dataType: "json",
url: "http://127.0.0.1:8000/***/***",
success: function(response){
r1=anotherMethodFromThisJS1(response);
r2=anotherMethodFromThisJS2(response);
result=[r1,r2]
}
})
}
Мне нужно получить доступ к значениям r1 и r2 для вызова метода load1 и load2 myJs1.
wtf this _is_ jQuery –
Вы не можете возвращать значения из асинхронной операции. Это не имеет никакого смысла. И вы уже используете jQuery. – Pointy
Возможный дубликат [Как вернуть ответ от асинхронного вызова?] (Http://stackoverflow.com/questions/14220321/how-do-return-the-response-from-an-asynchronous-call) – nem035