現在、jQuery で同期 AJAX 呼び出しを行っています。非同期呼び出しを維持しながら、親関数が Ajax 応答を返す方法はありますか。私が見つけた唯一の解決策は、コールバック関数を使用することでした。このオブジェクトを変数に入れるつもりなので、コールバック関数を書きたくありません。
例えば
var ajax = serviceinterface.rawServiceCall(“http://user.myservice.com/endpoint”, “post”, {name : “xyz”});
こんな使い方もいいかもしれません
$.when(serviceinterface.rawServiceCall(endpoint1, “get”), serviceinterface.rawSCACall(endpoint2, ‘get’)).done(function(){
// do something here
});
これが私の関数コードです。同期呼び出しはまったく問題なく動作しますが、非同期呼び出しを行いたいです。
rawServiceCall : function(endpoint, type, payload) {
type = typeof type !== 'undefined' ? type : "get";
payload = typeof type !== 'undefined' ? payload : null;
return $.ajax({
url : endpoint,
type : type,
data : payload,
async : false,
dataType : 'json',
headers: {
accept : "application/json"
},
success : function(data){
return data;
}
});
}
PS - CPU サイクルを無駄にしたり、Web ページの他の部分が最初に読み込まれるまで待機したりしたくありません。または、これに対するより良いアプローチは何ですか?