2014-11-25 38 views
0

我现在需要返回承诺,否则服务器http请求会返回该承诺,我需要拒绝承诺,所以我不必不必要地打到服务器。我一直在试图使并返回一个拒绝承诺,是这样的:

var promise = $q.defer().promise; 
return promise.reject(value); // doesn't work 

return $q.reject(); // also doesn't work 

我似乎无法弄清楚是怎么回事拒绝承诺,这样我就可以节省服务器调用,但是我处在一个地方,它要么返回一个被拒绝的承诺,要么进行服务器调用。我介于两者之间,我没有在原来的调用该调用的子指令,并且孩子无法进行父指令中可能的比较。反正有没有$超时这样做?

回答

2

我想你正在寻找的是

var app = angular.module('my-app', [], function() { 
 

 
}) 
 

 
app.controller('AppController', ['$scope', '$q', 
 
    function($scope, $q) { 
 
    $scope.message = 'This is for testing'; 
 

 
    function test() { 
 
     //create a deferred object 
 
     var deferred = $q.defer(); 
 
     //reject the promise 
 
     deferred.reject(2); 
 
     //then return the promise 
 
     return deferred.promise; 
 
    } 
 

 
    test().then(function() { 
 
     $scope.message = 'Resolved'; 
 
    }, function() { 
 
     $scope.message = 'Rejected'; 
 
    }) 
 
    } 
 
])
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="my-app" ng-controller="AppController"> 
 
    {{message}} 
 
</div>

deffered api有拒绝/解决方法,在这里为promise api已用于注册的回调方法方法

+0

啊,我明白我做错了什么。非常感谢 – mtpultz 2014-11-25 02:31:35