Javascript Deferred.pipe()能否阻止对后续.done和.fail的调用?

Javascript Deferred.pipe()能否阻止对后续.done和.fail的调用?,javascript,jquery,jquery-deferred,deferred,Javascript,Jquery,Jquery Deferred,Deferred,我有两个处理程序:onSuccess和onFailure,但有时(当服务器决定这样做时),我希望阻止它们中的任何一个运行。我知道我可以从.pipe()返回一些'ignore',并在.done()和.fail()处理程序中测试它,但是有没有更优雅的方法,比如在.pipe()中的这个中调整一些东西?您能提供更多的案例细节吗 什么时候应该调用onFailure?如果您的服务器调用失败,您如何能够知道是否需要按要求调用某些东西或什么都不需要 如果我理解您的要求,您希望避免在所有方法onSuccess和o

我有两个处理程序:onSuccess和onFailure,但有时(当服务器决定这样做时),我希望阻止它们中的任何一个运行。我知道我可以从
.pipe()
返回一些'ignore',并在
.done()
.fail()
处理程序中测试它,但是有没有更优雅的方法,比如在
.pipe()
中的
这个
中调整一些东西?

您能提供更多的案例细节吗

什么时候应该调用
onFailure
?如果您的服务器调用失败,您如何能够知道是否需要按要求调用某些东西或什么都不需要


如果我理解您的要求,您希望避免在所有方法
onSuccess
onFailure
中使用“If”语句。一种方法是添加一个中间的
.pipe
调用并返回一个新的承诺,具体取决于您的服务器是否回答要执行某项操作。

您的意思是在
.pipe()
中返回
$.Deferred()
?比如:
def.pipe(…){if(断开链)返回$.Deferred();}
?是的,类似这样。这个解决方案的问题是,如果您的服务器调用失败,您就不能切换服务器应答,或者在第一次调用的“失败”中切换服务器应答。我需要有关“切换”条件或服务器调用的更多信息,以便为您提供更好的代码示例。这是我当前的解决方案-返回
$.Deferred()
,不做任何处理。希望没有内存泄漏或其他问题(因为这些问题从未得到解决/拒绝..)