我试图调用一个常见的ajax函数,它应该返回从PHP脚本返回的值。
function ajaxCall(url, data, returnType) {
successData = 0;
$.when(
$.ajax({
type: "POST",
url: url,
data: data,
dataType: returnType,
success: function(data) {
successData = data;
}
})
).done(function(){
return successData;
});
return successData;
}
在文档加载时调用此函数两次:
$(document).ready(function() {
$.when(
ajaxCall("posts/sales.php", "monthly=Call1", "json", "as"),
ajaxCall("posts/sales.php", "monthly=Call2", "json", "as")
).then(function() {
// make changes in some table.
});
});
但是,基于此,ajax
是asyc,then()
部分在when()
完成之前执行。
我想要的是没有等待页面加载,我希望根据从ajax调用返回的内容更改表中的值。
PS。如果我可以将ajaxCall函数的返回值存储在某个变量中,那就更好了。
答案 0 :(得分:1)
function ajaxCall(url, data, returnType) {
return $.ajax({
type: "POST",
url: url,
data: data,
dataType: returnType,
});
}
$(document).ready(function() {
$.when(
ajaxCall("posts/sales.php", "monthly=Call1", "json", "as"),
ajaxCall("posts/sales.php", "monthly=Call2", "json", "as")
).then(function(resultFromFirstCall1, resultFromSecondCall1) {
//Do something with result 1 and 2
});
});