【发布时间】:2012-11-06 11:02:31
【问题描述】:
我现在正在 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;
}
});
}
P.S - 我不想浪费 CPU 周期或让网页的其他部分等待它首先加载。或者有什么更好的方法?
【问题讨论】:
标签: javascript ajax jquery deferred