Max*_*tin 0 javascript ajax jquery loops
我有一个非常基本的场景:运行3 Google映射放置URL并在每次成功时显示结果
这是我到目前为止:
var values = ["url1", "url2", "url3"];
values.forEach(function(value, i) {
var jsonReq = JSON.stringify({
action: 101,
supported: value
});
...
$.ajax({
type: "POST",
url: "data.ajax.php",
dataType:"json",
data:{
data:jsonReq
},
success:function(data){
// parse results
....
}
});
});
Run Code Online (Sandbox Code Playgroud)
问题是我在循环中运行所有3个URL 而无需等待成功.
我想只在从前一个获得响应(回调)时发送下一个请求.
有什么建议?
谢谢,
尝试递归而不是......像这样
var currentR = 0;
var values = ["url1", "url2", "url3"];
function sendReqests()
{
if(!values[currentR])
return false;
var jsonReq = JSON.stringify({
action: 101,
supported: values[currentR]
});
$.ajax({
type: "POST",
url: "data.ajax.php",
dataType:"json",
data:{
data:jsonReq
},
success:function(data){
currentR++;
if(values[currentR]){
sendReqests();
}
}
});
}
// call the recursive function
sendReqests();
Run Code Online (Sandbox Code Playgroud)