当前位置: 首页 > 面试题库 >

延期失败后,是否有继续的方法?

别浩漫
2023-03-14
问题内容

我正在处理数量未知的Ajax请求。该请求可能会在404中失败。这将导致整个链失败。

延期失败后,是否有继续的方法?

var deferreds = [];
// fill deferreds with a number of ajax requests.
$.when.apply($, deferreds)
 .done(function(){
     // handle done
 }).fail(function(){
     // handle fail
     // would like to fix/resolve the failed deferred and continue with the rest
 });

问题答案:

您必须创建自己的延迟对象,等待另一个延迟对象成功或失败。

var myDeferred = $.Deferred();
var origDeferred = $.ajax(...);
// if request is ok, i resolve my deferred
origDeferred.done(function() {
  myDeferred.resolve.apply(this, arguments);
});
// if request failed, i also resolve my deferred
origDeferred.fail(function() {
  myDeferred.resolve.apply(this, arguments);
});

在这种情况下,您的延期将始终得到解决。



 类似资料:
  • 场景是,我想让用户输入数字,无论他们想输入多少次,并且在他们按下Control+Z之后,他们应该仍然能够输入其他的东西。 虽然我知道可以通过让用户输入其他东西来终止循环,但是在按下Control+Z之后,是否有任何方法可以处理输入?

  • 我得到了一个错误,当试图调试java代码在可视化工作室代码。错误在下面 我试过清理工作区,但没用。请问,我如何解决这个问题?

  • 我在单元测试中使用groovy脚本。我有以下代码片段,我在单个测试脚本中使用多个断言。 第一个断言失败并停止执行。但我想继续进一步的代码片段。 与selenium中的软断言类似,我应该如何收集groovy中的所有失败异常。

  • 问题内容: 当Windows上的Visual C ++断言失败时,调试器将停止,显示消息,然后让您继续(或者,如果未运行调试会话,则为您启动Visual Studio)。 在Linux上,assert()的默认行为似乎是显示错误并退出程序。由于我所有的断言都通过宏进行,因此我尝试使用信号来解决此问题,例如 但是,尽管GDB(通过KDevelop)停在了正确的位置,但我似乎无法继续过去,并且在GDB

  • 我按照cypress在他们的文档中推荐的方式编写测试,即每个测试有多个断言,但是用这种方式编写测试时会出现一个问题,那就是如果断言失败,测试执行就会停止。 我希望每个测试有多个断言,如果其中一个失败,测试将失败,但将继续测试执行,所以在最后,我将能够看到测试中失败的所有断言,而不仅仅是第一个失败的断言。 提前感谢!