我使用AJAX从服务器获取一些值,并且我正在异步执行它。我怎么能停下来等到AJAX请求结束?这是我的代码:等待ajax响应填充对象
var response = {}
for (var i = 0; i < length; i++){
$.ajax({
url : url[i],
dataType : 'json'
}).success(function(result) {
processResult(result);
})
}
我想我应该创建一个函数来等待,但它不能正常工作:
function wait() {
for (var name in response) {
if (response[name] === undefined) {
setTimeout(function() {
wait()
},50)
}
}
processResult(); //this is function where I will process my AJAX result
}
谁能帮助我?
你的意思是代码在你的ajax加载时运行吗?当你的ajax请求完成执行时,你的成功处理器中的任何东西都会被调用。你只需要在你的成功处理程序 – Alex
内调用processResult()我不明白。只有当请求结束时,成功内部的函数才会被调用? –
看起来像范围问题,尝试声明函数作为变量,var wait = function ... – dmi3y