Angular服务没有返回错误响应

时间:2017-07-05 07:16:27

标签: angularjs

我正在调用服务saveRouteInfo(),但只会在控制器中调用错误和成功调用成功回调。

服务

gisApp.factory('rpServc', function($http) {
      return {
          saveRouteInfo:function(routeInfo){
              return $http.post("/GISWebApp/gis/api/v1/route",routeInfo).then(
                  function(response) 
                  {  
                      return response.data;           
                  }, function(response) {
                      return response.data;
                  });   
            },
      }; 
});

控制器

rpServc.saveRouteInfo(routeInfo).then(function(data) {
    alert(JSON.stringify(data));

}, function(error) {
    alert(JSON.stringify(error));
});

2 个答案:

答案 0 :(得分:0)

使用$ q

 gisApp.factory('rpServc', function($http, $q) {
        var deferred = $q.defer();
        return {
            saveRouteInfo:function(routeInfo){
                return $http.post("/GISWebApp/gis/api/v1/route", routeInfo).
                then(function(response) {
                  return response;          
                }, function(reason) {
                  return $q.reject(reason);
                });
            },
        };
    });

答案 1 :(得分:0)

你应该阅读$q angular promises documentation

并返回已解决或被拒绝的承诺,以便您可以在.then()第二个函数中捕获被拒绝的承诺。