Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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总是函数_Javascript_Jquery - Fatal编程技术网

Javascript Jquery总是函数

Javascript Jquery总是函数,javascript,jquery,Javascript,Jquery,我只是有一个关于jquery的always函数的快速问题 目前在我的代码中,我有一个POST请求,所以我使用始终函数让它等待完成,然后打印出响应 ajax_send.always(function(){ console.log(ajax_send); } 我的问题是,如果我有一些代码希望在POST请求完成后运行,那么如果我将其放置在循环之外,它是否会在始终完成之前运行,如下所示: ajax_send.always(function(){ console.log(ajax_sen

我只是有一个关于jquery的always函数的快速问题

目前在我的代码中,我有一个POST请求,所以我使用
始终
函数让它等待完成,然后打印出响应

ajax_send.always(function(){
    console.log(ajax_send);
}
我的问题是,如果我有一些代码希望在POST请求完成后运行,那么如果我将其放置在循环之外,它是否会在
始终
完成之前运行,如下所示:

ajax_send.always(function(){
    console.log(ajax_send);
}
console.log("ajax done");
ajax_send.always(function(){
    console.log("1");
    ajax_send.always(function(){
        console.log("2");
        ajax_send.always(function(){
            console.log("3");
        }
    }
}
ajax_send.always(function(){
    console.log("1");
}    
ajax_send.always(function(){
    console.log("2");
}    
ajax_send.always(function(){
    console.log("3");
}
如果我总是在
函数中有一些东西在等待它

我这样做是因为我要做几个POST请求,如果我必须将它放在“始终”中,它看起来会非常难看,如下所示:

ajax_send.always(function(){
    console.log(ajax_send);
}
console.log("ajax done");
ajax_send.always(function(){
    console.log("1");
    ajax_send.always(function(){
        console.log("2");
        ajax_send.always(function(){
            console.log("3");
        }
    }
}
ajax_send.always(function(){
    console.log("1");
}    
ajax_send.always(function(){
    console.log("2");
}    
ajax_send.always(function(){
    console.log("3");
}
如果我可以将它放在后面,并且只要我在
始终
中有一些内容,它在请求完成后仍然会运行,那么代码就会看起来非常漂亮,如下所示:

ajax_send.always(function(){
    console.log(ajax_send);
}
console.log("ajax done");
ajax_send.always(function(){
    console.log("1");
    ajax_send.always(function(){
        console.log("2");
        ajax_send.always(function(){
            console.log("3");
        }
    }
}
ajax_send.always(function(){
    console.log("1");
}    
ajax_send.always(function(){
    console.log("2");
}    
ajax_send.always(function(){
    console.log("3");
}

编辑:我上面的代码缺少实际调用,但是
。始终
将始终在POST请求之后。

始终
中的代码将在特定ajax调用完成后执行。无法确定ajax调用返回的顺序,请执行以下操作:

ajax_send.always(function(){
    console.log("1");
}    
ajax_send.always(function(){
    console.log("2");
}    
ajax_send.always(function(){
    console.log("3");
}
并不总是保证打印出1,2,3。唯一的方法是:

ajax_send.always(function(){
    console.log("1");
    ajax_send.always(function(){
        console.log("2");
        ajax_send.always(function(){
            console.log("3");
        }
    }
}
原因是调用(顾名思义)是异步的。这意味着他们不会阻止代码的执行,而是在后台工作。
始终
的目的是等待“后台”函数完成它正在做的事情,然后执行所需的代码。这可以确保事情按照您期望的顺序执行

要执行类似于您所要求的操作,请研究使用jQuery的函数


如果将控制台放在always之外,它将在Ajax调用之前运行……我的意思是,如果将控制台放在
always
之后,而不是
always
之前,该函数不是为此而设计的吗?多always的目的是什么?大学教师;您不需要将它链接到单个Ajax请求,而不是所有请求都链接到同一个请求吗?听起来你应该使用jQuery.when()@epascarello:我只是把它作为一个例子。在每次发布之前,总会有一个不同的帖子请求,我只是没有把它包含在我的代码中,真糟糕。我希望它能做到:(谢谢你的帮助!