私は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;
});
現在、通常取得するデータの実際の json ではなく、結果として関数 GET_allSystems() を取得しています。
AJAX呼び出しが現在処理中かどうかを知ることができ、希望する抽象化のレベルを提供するだけなので、その関数を介してajax呼び出しを渡したいと思います。
明らかに私は何か間違ったことをしていますが、ajax呼び出しが終了すると $.done が実行され、結果が返されると想像します...しかし、ここではそうではないようです。