当前位置: 首页 > 知识库问答 >
问题:

在AngularJS中,是否每次都需要捕获?

车诚
2023-03-14

我正在执行多个ajax调用,我想在显示表单之前完成所有这些调用。如果有错误,我想停止处理,只显示遇到的第一个错误。我谷歌了很多文章,包括StackOverflow上的文章,这些文章展示了如何链接当时的语句。但是似乎我必须给每个语句都附加一个捕获,否则只捕获最后一个语句中的错误。在本例中,Lookup是一个返回promise的异步调用,ShowError处理错误:

Data.Lookup("a")
  .then(function(result) {
    vm.a = result;
    Data.Lookup("b")
      .then(function(result) {
        vm.b = result;
        Data.Lookup("c")
          .then(function(result) {
            vm.c = result;
          })
          .catch(function(response) {
            vm.showError(response);
          });
      })
      .catch(function(response) {
        vm.showError(response);
      });
  })
  .catch(function(response) {
    vm.showError(response);
  });

假设至少有一个错误,是否有任何方法可以使用一个在遇到第一个错误时触发的捕获?

这与等待所有promise解决的问题不同。如标题所述,该用户希望处理所有promise。我很高兴在第一次promise后就辞职了,那是有错误的。

共有1个答案

胡星汉
2023-03-14

添加return,因此如果其中一个内部失败,结果promise将失败:

Data.Lookup("a")
  .then(function(result) {
    vm.a = result;
    return Data.Lookup("b")
      .then(function(result) {
        vm.b = result;
        return Data.Lookup("c")
          .then(function(result) {
            vm.c = result;
          });
      });
  })
  .catch(function(response) {
    vm.showError(response);
  });
 类似资料:
  • 问题内容: 我们的团队正在使用SecureRandom生成密钥对列表(将SecureRandom传递给KeyPairGenerator)。对于以下两种选择中的哪一种,我们无法达成共识: 每次需要生成密钥对时都创建一个新实例 初始化静态实例并将其用于所有密钥对 通常哪种方法更好, 为什么 ? 添加:我的直觉是第二种选择更安全。但我唯一的论点是基于以下假设的理论攻击:假随机性是从当前时间戳派生的:某人

  • 问题内容: 我试图在每次启动Ajax调用时在$ rootScope上触发一个事件。 事件“ httpCallStarted”没有被触发。我怀疑在配置块中使用$ rootScope或任何其他实例服务是不正确的。如果是这样,如何在每次启动HTTP调用时获取事件,而不必在每次调用时都传递配置对象? 提前致谢 问题答案: 您总是可以将$ http包装在服务中。由于服务仅设置一次,因此您可以让服务工厂为您设

  • 我有一个使用SpringLDAP 1.3.1的应用程序。它在启动时在Spring上下文中创建LdapTemplate,并将其传递给我的应用程序。我连接的LDAP字符串实际上是一个VIP设备,后面有多个Active Directory服务器。 该应用程序用于创建组层次结构,并分几个步骤进行。首先,它创建任何新组,然后删除任何删除的组,然后更新和更改组,最后更新任何新组或移动组的父级。 在最后一步中,

  • 问题内容: 在C ++中,我最熟悉的语言通常是这样声明一个对象: 调用可以正常工作(忽略可能未初始化的事实)。其中的变量在class的范围内,因此除非我真的需要明确指出我是在指代类而不是参数,否则我不需要说。 现在,我正在尝试开始使用Java OOP。因此,我查找了如何定义类并尝试相同的事情: 它给了我。更改为可解决此问题,但是对每个变量执行此操作会使我的代码混乱很多。每个变量都需要吗?由于我找不

  • 问题内容: 我想在我的JavaScript代码中包含几个JSON文件,这些文件与JavaScript源文件位于同一目录中。 如果我想包含另一个JavaScript文件,可以直接使用。现在,我正在使用和获取JSON,我认为这是执行此操作的丑陋方法。 是否有类似的要求,使我能够加载JSON文件? 问题答案: 从节点v0.5.x开始,是的,您可以像需要js文件一样要求JSON。 在ES6中:

  • 我在Android4(ICS)上有个问题,我的蓝牙应用程序连接到一个串行设备上,在Android3上就像一个魅力。 然而,当使用Android4时,每次我连接到(已经配对的)设备时,它都会显示“配对”对话框。 用户必须一遍又一遍地重新输入相同的pin。在Android4中有什么方法可以抑制这种行为吗?是新的虫子吗?附近有工作吗?BluetoothDevice是否需要某种方式来适应Android4?