Javascript Deferred.pipe()能否阻止对后续.done和.fail的调用?
我有两个处理程序:onSuccess和onFailure,但有时(当服务器决定这样做时),我希望阻止它们中的任何一个运行。我知道我可以从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
.pipe()
返回一些'ignore',并在.done()
和.fail()
处理程序中测试它,但是有没有更优雅的方法,比如在.pipe()
中的这个中调整一些东西?您能提供更多的案例细节吗
什么时候应该调用onFailure
?如果您的服务器调用失败,您如何能够知道是否需要按要求调用某些东西或什么都不需要
如果我理解您的要求,您希望避免在所有方法onSuccess
和onFailure
中使用“If”语句。一种方法是添加一个中间的.pipe
调用并返回一个新的承诺,具体取决于您的服务器是否回答要执行某项操作。您的意思是在.pipe()
中返回$.Deferred()
?比如:def.pipe(…){if(断开链)返回$.Deferred();}
?是的,类似这样。这个解决方案的问题是,如果您的服务器调用失败,您就不能切换服务器应答,或者在第一次调用的“失败”中切换服务器应答。我需要有关“切换”条件或服务器调用的更多信息,以便为您提供更好的代码示例。这是我当前的解决方案-返回$.Deferred()
,不做任何处理。希望没有内存泄漏或其他问题(因为这些问题从未得到解决/拒绝..)