如何解决和拒绝使用角$ q

时间:2015-01-09 12:40:27

标签: angularjs

我有一个带有以下签名的

的Angular服务
function test(param1, param2, param3) {
   var deferred = $q.defer();
   if(!param1 || !param2) {
       deferred.reject();
       return deferred;
   } else {
       deferred.resolve();
   }

   var helper1 = function(){};
   var helper2 = function(){};

   return deferred;
}

当被召唤时

test().then(function(){ }, function(){ });

未执行已解决或已拒绝。我做错了什么?

1 个答案:

答案 0 :(得分:2)

你需要从deffer对象返回promise。

 function test(param1, param2, param3) {
       var deferred = $q.defer();
       if(!param1 || !param2) {
           deferred.reject();
       } else {
           deferred.resolve();
       }

       var helper1 = function(){};
       var helper2 = function(){};

       return deferred.promise;
    }