2014-02-13 202 views
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"打印到控制台。为什么它不拒绝链条的其余部分?

回答

2

有这一行的一个问题...

.then(testPromiseReject()) 

它只是需要()小号去除,所以它不会立即执行......

.then(testPromiseReject) 

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

+1

啊。明白了,非常感谢! –