我知道Deferred.done(a).fail(b)与Deferred.then(a,b)相同,除了它们的语法之外,但我想知道是否有一种首选的语法方式。
为什么我会使用一个而不是另一个?有最好的做法吗? 我现在唯一可以提出的论点是,如果我在.done(a).fail(b)情况下遇到失败函数'b',我立即知道它是一个当我看到失败时失败功能(b),而我不当我在当时(a,b)情况下看到b时看到它。还有其他论点吗?
答案 0 :(得分:3)
当您有多个任务要完成或失败时,请使用Deferred.then(a,b)。
e.g。
$.when(task1)
.then(task2, task1Failure)
.then(task3, task2Failure)
.fail(task3Failure);
或
$.when(task1)
.then(task2, task1Failure)
.then(task3, task2Failure)
.then(task3SuccessMeaningAllSuccess, task3Failure);
答案 1 :(得分:-1)
.done(a).fail(b)
是一种更加语义化的方法,所以我会这样做。