Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery延迟对象链接多个ajax调用_Javascript_Jquery_Jquery Deferred - Fatal编程技术网

Javascript 使用jquery延迟对象链接多个ajax调用

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”、“

在寻找类似于此处所述的解决方案时: 我正在寻找使用jqueryv1.52的解决方案

我有一组ajax请求要发出。但是,每个ajax请求只有在完成前一个ajax调用之后才能发送。我正试图用jQuery1.5.2实现这一点,但就是做不到。是我从上面提到的例子中修改的。它不起作用。有人能帮我把这个弄好吗?预期产量为

附言:我无法升级到1.5.2以上的版本!解决了

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();