2013-10-18 24 views
0

现在我有这样的代码:因之jQuery的承诺

$.when(promise1, promise2).done(this.processData.bind(this)); 

所以,当两个承诺都解决了,过程数据功能将被解决。 现在,我有了第三个promise - promise3,它依赖于promise1和promise2,这意味着一旦前两个加载,我只能获取promise3的数据。然后我想将所有三个结果发送到processData函数。我该如何解决这个问题?我知道

$.when(promise1, promise2, promise3).done(this.processData.bind(this)); 

不会做的伎俩,因为promise3已加载后才 promise1和promise2完成。

+0

把你的第二次,当你第一次的时候完成。 –

回答

0
$.when(promise1, promise2) 
.done(function (promise1_result, promise2_result) { 

    //Call promise3 having access to the results returned from promise1 and promise2 
    promise3.done(function(promise3_result) { 

    }); 

}); 
+0

这是否符合“promise3必须在promise1和promise2完成后才加载”的要求?如此处所写,在promise1和promise2得到解决之后,promise3的完成处理程序将被附加,但promise3本身将在此之前存在。 –