1
这是当我执行以下函数时发生的情况,AjaxCallFive仅在AjaxCallFour被执行后执行。有人可以深入解释这两个调用是如何不同的
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);
});
然而,如果我改变变量A2线如下两个功能同时调用,AjaxCallFive地没有为AjaxCallFour到最先被执行等待执行。
var a2 = a1.then($.ajax(ajaxFive()));
因为你调用Ajax调用和它所返回存储。在这种情况下,这是一个正在返回的承诺。 – epascarello