Я пытаюсь сделать вызов ajax, который получает тип свойства. Используя этот тип, я передаю его другому вызову ajax. У меня возникают трудности с этим асинхронно, потому что я пытаюсь отложить до того, как будет загружено первое свойство.Вызов ajax внутри ajax
function getEnt_PodType() {
var ent_PodType;
var oDataUrl = //URL to my data;
return $.ajax({
url: oDataUrl,
type: "GET",
async: true,
beforeSend: function (xhr) {
xhr.setRequestHeader("ACCEPT", accept);
},
success: function (xhr, textStatus) {
var res = xhr;
if (res.d.results != undefined) {
ent_PodType = res.d.results[0].Ent_PodType;
}
console.log("The ent pod type value is "+ ent_PodType);
return ent_PodType;
}
});
}
function getProjects() {
var QUERY_FILTER = getEnt_PodType().done(function (result) {
"$filter=Ent_PodType eq '" + result + "'";
});
var url = restUrl + QUERY_FILTER;
console.log("The url form getProjects is " + QUERY_FILTER);
return $.ajax({
url: url,
type: "GET",
async: true,
beforeSend: function (xhr) {
xhr.setRequestHeader("ACCEPT", accept);
},
success: function (xhr, textStatus) {
projects = parseODataResultTest(xhr);
return projects;
}
});
}
Когда я называю getProjects(), я думал, что строительство URL будет ждать getEnt_PodType() для возврата его стоимости, но это, кажется, не работает.
Вместо этого он идет вперед и выполняет остальные функции getProjects(). Есть ли способ сделать это асинхронно?
Вам нужно сделать второй вызов AJAX внутри функции '.done()'. – Barmar
В отличие от сайтов на форуме, мы не используем «Спасибо», или «Любая помощь оценена», или подписи на [so]. См. «[Должны ли« Привет »,« спасибо », теги и приветствия удалены из сообщений?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts). BTW, это «Спасибо заранее», а не «Спасибо в продвинутом». –