Javascript 使用jquery延迟对象链接多个ajax调用
在寻找类似于此处所述的解决方案时: 我正在寻找使用jqueryv1.52的解决方案 我有一组ajax请求要发出。但是,每个ajax请求只有在完成前一个ajax调用之后才能发送。我正试图用jQuery1.5.2实现这一点,但就是做不到。是我从上面提到的例子中修改的。它不起作用。有人能帮我把这个弄好吗?预期产量为 附言:我无法升级到1.5.2以上的版本!解决了Javascript 使用jquery延迟对象链接多个ajax调用,javascript,jquery,jquery-deferred,Javascript,Jquery,Jquery Deferred,在寻找类似于此处所述的解决方案时: 我正在寻找使用jqueryv1.52的解决方案 我有一组ajax请求要发出。但是,每个ajax请求只有在完成前一个ajax调用之后才能发送。我正试图用jQuery1.5.2实现这一点,但就是做不到。是我从上面提到的例子中修改的。它不起作用。有人能帮我把这个弄好吗?预期产量为 附言:我无法升级到1.5.2以上的版本!解决了 var x=null; var i=0; x=$.Deferred(); 风险值国家=[“美国”、“CA”、“MX”、“bx”、“fs”、“
var x=null;
var i=0;
x=$.Deferred();
风险值国家=[“美国”、“CA”、“MX”、“bx”、“fs”、“ZX”];
函数日志(msg){
var$out=$(“”);
$out.html(msg);
$(“#控制台”).append($out);
}
callX=函数(j){
返回$.ajax({
键入:“获取”,
url:“/echo/json/”,
数据:{国家:国家[i]},
数据类型:“JSON”,
成功:函数(){
日志(“成功请求[“+国家[j]+”]);
i++;
x、 解决();
xy();
}
});
}
x、 解决();
xy=函数()
{
调试器;
如果(i>5)
返回;
$.when(x).then(function(){
x=$.Deferred();
日志(“请求[“+国家[i]+”]);
callX(i);
});
}
xy();
这就是你想要的吗?@Vishal,这个答案并不能解决在前一个成功后启动ajax调用的问题。啊!没有看到成功的部分..忽略前面的评论,我会尝试解决一些问题。
var x = null;
var i = 0;
x= $.Deferred();
var countries=["US","CA","MX","bx","fs","ZX"];
function log(msg) {
var $out=$("<div />");
$out.html(msg);
$("#console").append($out);
}
callX = function(j) {
return $.ajax({
type: "GET",
url: "/echo/json/",
data: {country:countries[i]},
dataType: "JSON",
success: function(){
log("Successful request for [" + countries[j] + "]");
i++;
x.resolve();
xy();
}
});
}
x.resolve();
xy = function()
{
debugger;
if(i > 5)
return;
$.when(x).then(function() {
x = $.Deferred();
log("Making request for [" + countries[i] + "]");
callX(i);
});
}
xy();