Javascript Jquery总是函数
我只是有一个关于jquery的always函数的快速问题 目前在我的代码中,我有一个POST请求,所以我使用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
始终
函数让它等待完成,然后打印出响应
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:我只是把它作为一个例子。在每次发布之前,总会有一个不同的帖子请求,我只是没有把它包含在我的代码中,真糟糕。我希望它能做到:(谢谢你的帮助!