我正在调用 AJAX 调用,每次调用 ajax 调用时,我都会将它传递给一个函数来处理它。我这样做是因为我一次保留了 AJAX 请求的计数器(主要将其用于开发目的)。我正在尝试检索 AJAX 调用的结果,然后处理该数据。
让我粘贴一些代码以获得更好的清晰度。
function GET_allSystems() {
return $.ajax({
type: "GET",
url: getSystemUrl(), // Unimportant, I call the url from a method
cache: false,
dataType: "json"
});
}
// This will automatically increment and decrement the semaphore variable
// and execute functions when AJAX call is done.
function processAjaxCall(performAjaxCall, doFunctionWhenDone) {
ajaxCall++;
$.when(performAjaxCall).done(function (result) {
ajaxCall--;
doFunctionWhenDone(result);
});
}
// I process the ajax to get all system information then put it in an object
processAjaxCall(GET_allSystems, function (result) {
systemMap["systems"] = result;
});
目前我得到的结果是 GET_allSystems() 而不是我通常会得到的实际 json 数据。
我想通过该函数传递 ajax 调用,因为它允许我知道 AJAX 调用当前是否正在处理中,并且它只是提供了我想要的抽象级别。
很明显我做错了什么,但我想 $.done 会在 ajax 调用完成并将结果传回时执行......但这里似乎并非如此。