Das passiert, wenn ich die folgende Funktion ausführe, wird das AjaxCallFive nur ausgeführt, nachdem das AjaxCallFour ausgeführt wird.Kann jemand ausführlich erklären, wie diese zwei Anrufe unterschiedlich waren
var ajaxOptionsFour = {
type: "GET",
url: '/Home/AjaxCallFour',
data: { value: '10' },
success: updatePage,
error: printError
};
var ajaxFive = function() {
return {
type: "GET",
url: '/Home/AjaxCallFive',
data: { value: '10', dumyContent:"" },
success: updatePage,
error: printError
}
}
var a1 = $.ajax(ajaxOptionsFour);
var a2 = a1.then(
function (data) {
// .then() returns a new promise
return $.ajax({
type: "GET",
url: '/Home/AjaxCallFive',
data: { value: '10', dumyContent: data.data },
success: function (response) { console.log(response.dumyContent) },
error: function (response) { console.log() }
});
});
a2.done(function (data) {
console.log(data.data + data.waitValue);
});
Allerdings, wenn ich die a2 variable Zeile wie unterhalb der gleichzeitig genannt zwei Funktion zu ändern, wird AjaxCallFive ohne warten, ausgeführt für die AjaxCallFour zuerst ausgeführt wird.
var a2 = a1.then($.ajax(ajaxFive()));
, weil Sie den Ajax-Aufruf und nennen es, was Rückkehr wird gespeichert. In diesem Fall ist es ein Versprechen, das zurückgegeben wird. – epascarello