我想制作一个支持done
但不返回ajax的函数。
function checkAndReturn(){
if(global.id){
return global.id; // the problem might be here
}else{
return $.get("http://someurl.com",null,function(){...})
}
}
此处 checkAndReturn.done(function(){...})
在 global.id
不可用时有效,但在 global 时无效.id
可用。
我认为我应该返回任何其他对象并将我的数据装箱到该对象以完成我完成的工作,也许 xhr
?
最佳答案
您应该返回一个(已解决)jQuery Deferred
目的。 jQuery 的 AJAX 函数返回的 jqXHR
对象也是从 Deferred
派生的,所以你的函数的“接口(interface)”将是干净的——你的函数将返回一个 Deferred
在任何情况下。
你可以做这样的事情(只是一个例子,根据你的用例进行调整):
function checkAndReturn(){
if (global.id){
return $.Deferred().resolve(global.id);
}
else {
return $.get("http://someurl.com", null, function(){...})
}
}
关于没有ajax调用的javascript完成函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22042421/