首页 文章

拒绝链中的承诺

提问于
浏览
2

所以这可能是微不足道的,但我正在做一些概念证明,试图拒绝承诺链中的承诺,但我没有得到我期望的结果 .

app.controller('MainCtrl', function($scope, $q) {
    var def = $q.defer();

    def.promise
    .then(testPromiseReject())
    .then(
      function(){
        console.log("SUCCESS")
      }, 
      function(){
        console.log("FAIL")
      });

    def.resolve();

    function testPromiseReject(action)
    {
      return $q.reject()
    }
  });

我想我正在创建一个我最初解决的承诺,但在第一个 then 我有一个函数,我试图拒绝承诺链的其余部分 . 上面的代码将 "SUCCESS" 打印到控制台 . 为什么不拒绝链的其余部分?

1 回答

  • 2

    这条线有问题......

    .then(testPromiseReject())
    

    它只需要删除 () ,所以它不会立即执行...

    .then(testPromiseReject)
    

    小提琴... http://jsfiddle.net/5LVEE/1/

相关问题