2014-11-25 3 views
0

약속을 되 찾을 필요가있는 지점에 있는데, 그렇지 않으면 서버 http 요청에 의해 반환 될 것이므로 거부해야합니다 그래서 불필요하게 서버에 충돌하지 않습니다.

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

또는

return $q.reject(); // also doesn't work 
나는 거부 약속을 반환하는 방법을 알아낼 수 없습니다

그래서 나는 저장할 수 있습니다 : 나는 같은 것을하고 거부 약속을 반환하려고했는데 서버 콜이지만, 나는 거절당한 약속을 되 돌리거나 서버 콜을하는 지점에있다. 나는 둘 다 호출을 호출 한 원래 자식 지시문에 있지 않은 위치에 있고 부모 지시문에서 가능한 비교를 수행 할 수 없습니다. $ timeout없이 이것을 할 수 있습니까?

답변

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 apipromise api 같은 방법은 콜백 메소드를 등록하는 데 사용했다 거부/해결 방법을 가지고

+0

아 , 내가 뭘 잘못하고 있는지 알 겠어. 매우 감사합니다 – mtpultz

관련 문제