2014-03-04 35 views
-1

我可以在jQuery中实现类似这样的事情,我尝试但无法做到。在jQuery中使用延迟对象

deferred1().done(function(){ 

    deferred2().done(function(){ 
       //do something 
       //i am trying to submit a form but not working(timeout).Not sending any request. 


      }).fail(function(){ 
        //do something 
      }); 

    }).fail(function(){ 
     //do something 
}); 
+0

是的你可以,嵌套回调应该可以正常工作,但没有任何其他代码比它不可能真正回答这个问题? – adeneo

+0

是否“一旦两个延期都完成了”? – Andy

+0

你也可以使用'$ .when',但再次,嵌套'done()'调用应该很好。 – adeneo

回答

0

考虑功能deferred1()和deferred2()你有一个简单的方法来俱乐部做,失败的功能

$.when(deferred1(),deferred2()). 
done(function(){ 
//do things if both deferred1() and deferred2() are resolved. 
}). 
fail(function(){ 
//do things if any of the deferred1() or deferred2() gets rejected. 
}) 

但要记住传递给完成功能的函数的调用返回的jQuery递延对象由deferred1()和deferred2()返回的延迟对象需要在某个时间点被解析或拒绝。

+0

会不会有顺序执行? deferred1然后deferred2 ?? – Arvind

+0

当我们将分组推迟到一起的顺序应该没有关系。要回答你的问题,执行deferred2()不会等待deferred1()完成。 – WebServer