我有多个延迟对象。我需要为每个延迟对象附加一次处理程序。
我知道我可以使用
$.when.apply($, my_array);
但据我了解,只有在解析了所有延迟对象后才会触发。
每次解析一个对象时我都需要被解雇。我可以使用一个循环,但我想知道是否有类似于使用$ .when上述行的行。
答案 0 :(得分:1)
你必须使用循环;没有单独处理每个承诺的语法糖。
function doneCallback() {
// your common callback
}
$.each(my_array, function(my_deferred) {
my_deferred.done(doneCallback);
}
答案 1 :(得分:0)
不完全确定这是否是您尝试做的事情,但听起来您需要做的是创建一个主延迟对象,然后将延迟对象数组传递给它。使用.always()
将处理程序添加到数组中的对象,这会触发延迟失败或成功。当所有子延迟对象都被解析后,主延迟.done()
将被触发。
此外,$ .when()可以处理延迟对象的数组,因此您可以尝试$.when(my_array).always(function()...)