如果一个承诺失败,$q.all() 不会调用失败处理程序

萨詹·萨卡尔

只是想了解它是如何$q.all()工作的:

在我的示例中,我$q.all()用来执行 2 个函数(都有意返回reject()),我希望 中的fail处理程序then()被调用,但它没有,为什么会这样?

代码:

var myApp = angular.module('myApp',[]);

function MyCtrl($scope,$q) {


    f1 = function(){
        return $q.defer().reject();
    }

    f2 = function(){
        return $q.defer().reject();
    }
    s = function(){alert('success!'); };
    f = function(){alert('failed!');};
    $q.all([f1(),f2()]).then(s,f);
}

小提琴:

http://jsfiddle.net/sajjansarkar/ADukg/10942/


编辑 :

如果我让函数返回原始承诺并在拒绝之前引入延迟,我发现相同的代码有效。

小提琴

彼得·阿韦里亚诺夫

应该:

   f2 = function(){
      var p = $q.defer();
      p.reject();
      return p.promise;
    }

或者

f2 = function() {
 return $q.reject()
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当一个承诺被拒绝时,使$ q.all默默失败

来自分类Dev

Q.all不会调用任务

来自分类Dev

在第一个承诺完成后调用Angular $ q.all

来自分类Dev

当某些承诺失败时,如何继续$ q.all()

来自分类Dev

如果承诺失败,请抓住但继续下一个

来自分类Dev

PassportSocketIo.authorize不会调用成功或失败回调

来自分类Dev

如果首字母或最后一个字母在utf8中,则preg_match_all失败

来自分类Dev

angularjs在$ q.all中返回另一个承诺

来自分类Dev

Restful API偶尔会失败,但始终会调用“ catch”语句,即使它不会失败

来自分类Dev

一旦API失败,协程绝对不会调用API

来自分类Dev

改造有效,但回调不会调用成功或失败方法-Android

来自分类Dev

忽略Promoise.all中失败的承诺

来自分类Dev

Repo.all 失败,因为我有一个自定义主键

来自分类Dev

使用 Promise.all() 函数检查一个 promise 是否失败

来自分类Dev

Js:如果第一个语句失败,则继续

来自分类Dev

如果失败则返回前一个命令

来自分类Dev

如果一个延迟的拒绝,则cujojs中的when.all()2.2.1不会拒绝

来自分类Dev

当某些调用工作而另一些调用失败时,$ q.all()会发生什么?

来自分类Dev

AngularJS-对$ q.all()的恢复失败

来自分类Dev

调用另一个批处理文件的调用批处理文件失败

来自分类Dev

如果第一个模式失败,则RegEx匹配另一个模式

来自分类Dev

如果另一个线程组失败,如何调用第一个线程组

来自分类Dev

如果先前执行失败,如何执行下一个批处理Windows命令?

来自分类Dev

如果一个用户撤消访问权限,则对多个用户的批处理请求将失败

来自分类Dev

带有两个“ then”的角$ q:如果第一个到达错误处理程序,将调用第二个吗?

来自分类Dev

如果asp.net核心中的异步日志记录失败,则调用一个动作

来自分类Dev

从另一个管道调用时,被调用的管道不会失败

来自分类Dev

如果第一个任务失败,则失败后续的gulp任务

来自分类Dev

$ q.all中的有角承诺不会被拒绝

Related 相关文章

  1. 1

    当一个承诺被拒绝时,使$ q.all默默失败

  2. 2

    Q.all不会调用任务

  3. 3

    在第一个承诺完成后调用Angular $ q.all

  4. 4

    当某些承诺失败时,如何继续$ q.all()

  5. 5

    如果承诺失败,请抓住但继续下一个

  6. 6

    PassportSocketIo.authorize不会调用成功或失败回调

  7. 7

    如果首字母或最后一个字母在utf8中,则preg_match_all失败

  8. 8

    angularjs在$ q.all中返回另一个承诺

  9. 9

    Restful API偶尔会失败,但始终会调用“ catch”语句,即使它不会失败

  10. 10

    一旦API失败,协程绝对不会调用API

  11. 11

    改造有效,但回调不会调用成功或失败方法-Android

  12. 12

    忽略Promoise.all中失败的承诺

  13. 13

    Repo.all 失败,因为我有一个自定义主键

  14. 14

    使用 Promise.all() 函数检查一个 promise 是否失败

  15. 15

    Js:如果第一个语句失败,则继续

  16. 16

    如果失败则返回前一个命令

  17. 17

    如果一个延迟的拒绝,则cujojs中的when.all()2.2.1不会拒绝

  18. 18

    当某些调用工作而另一些调用失败时,$ q.all()会发生什么?

  19. 19

    AngularJS-对$ q.all()的恢复失败

  20. 20

    调用另一个批处理文件的调用批处理文件失败

  21. 21

    如果第一个模式失败,则RegEx匹配另一个模式

  22. 22

    如果另一个线程组失败,如何调用第一个线程组

  23. 23

    如果先前执行失败,如何执行下一个批处理Windows命令?

  24. 24

    如果一个用户撤消访问权限,则对多个用户的批处理请求将失败

  25. 25

    带有两个“ then”的角$ q:如果第一个到达错误处理程序,将调用第二个吗?

  26. 26

    如果asp.net核心中的异步日志记录失败,则调用一个动作

  27. 27

    从另一个管道调用时,被调用的管道不会失败

  28. 28

    如果第一个任务失败,则失败后续的gulp任务

  29. 29

    $ q.all中的有角承诺不会被拒绝

热门标签

归档