我正在编写一些JavaScript,其中包括一系列AJAX调用,并且正在寻找一种解决以下问题的好方法:脚本的目标是收集参数,然后使用这些参数执行API调用.第一次执行调用时,需要从服务器请求一个参数-每个后续调用都将使用该参数的存储值.这是问题的开始.我希望只有在这是第一次时才进行条件AJAX调用.我不想将其余的代码放到该AJAX调用的成功函数中,因为这似乎很麻烦.我想要以下内容,但是由于调用具有明显的异步特性,因此我意识到这是不可能的.我也想避免进行同步调用,因为这将导致线程阻塞:
var myParameter;
if(!params.myParam.isstored) {
myParameter = getParamWithAjaxCall();
} else {
myParameter = params.myParam;
}
// Continue with the rest of execution here of which there is a lot of code
抱歉,如果这是一个显而易见的问题,并且我已经使用以下方法研究了解决方案,但我正在寻找对哪种解决方案最优雅的看法:
jQuery:when.done
jQuery:异步:false
将回调传递给Ajax调用
解决方法:
我将创建一个包装器函数,将您的逻辑传递给它作为done()中的回调.像这样:
function makeRequest(callback) {
if (!params.myParam) {
// retrieve param
$.ajax({
url: '/getParam',
success: function(data) {
params.myParam = data.param;
}
}).done(callback);
}
else {
// param already has a value...
callback();
}
}
makeRequest(function() {
// make your AJAX request here, kNowing that params.myParam will have a value.
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。