我想写一个程序,在2个对象因ajax函数的回调而返回后执行某些操作。jquery从ajax调用的回调推迟
我知道使用jQuery的经典例子,当():
$.when($.get("http://localhost:3000/url1"),
$.get("http://localhost:3000/url2").done(//do something));
但在我的情况,我不想触发时的AJAX功能的执行,我想的时候从执行ajax函数的回调中触发。例如:
$.get("http://localhost:3000/url1", function(data){
function(){
//do something with the data, and return myobj1;
}
});
$.get("http://localhost:3000/url2", function(data){
function(){
//do something with the data, and return myobj2;
}
});
$.when(obj1, obj2).done(function(){
//do something with these 2 objects
});
但当然,这是行不通的。想法?
是的,你发布的作品。但问题在于,当$ .get函数返回时启动了when,但如果您注意到上述情况,我会为每个$ .get请求发生回调,并且何时不会等待这些回调进行处理,只是当$ .get函数完成时。所以,何时发射太早。 –
@RyanOgle如果你不能因为某种原因一起处理这些响应,你可以创建你自己的延迟并使用它们。通过示例更新答案。 – Trevor
@ Trevor我必须在这里失去一些东西。在你添加的例子中,when()不应该触发,直到2延迟得到解决?我没有得到这个工作。看看这个简单的例子:http://jsfiddle.net/ax4u4/当()被触发时,即使延迟对象永远不会被解析。 –