当服务器关闭时,它不会返回错误

When server is down, it won't return error

本文关键字:返回 错误 服务器      更新时间:2023-09-26

我有一个工厂

  angular.module('app.services',[])
    .factory('myFactory', function($http){
      return {
        getData: function(){
          return {animal: 'dog'}
        },
        isUser: function() {
          var url='http://parleyvale.com/isUser/';
          var promise=$http.get(url).   
            success(function(data, status) {
              console.log(data);
              console.log(status);
              return data;
            }).
            error(function(data, status){
              console.log(data || "Request failed");
              console.log(status);
              var data = {message: "Server is down"}
              return data;
            });
          return promise;
        },    ...
为控制器提供数据的

  angular.module('app.controllers',[])
    .controller('MainCtrl', ['$scope', 'myFactory', function($scope, myFactory){
      $scope.factoryOutput=myFactory.getData();  
      $scope.isUser=myFactory.isUser().then(function(data){
        console.log(data.data.items);
        $scope.factoryOutput2=data.data.items
      });  ...

但是如果服务器关闭,它什么也不返回尽管控制台得到

x GET http://parleyvale.com/isUser/ net::ERR_CONNECTION_REFUSED

我如何构建我的代码,使它捕获错误时,服务器关闭?这里是http://jsbin.com/nebed/2/edit

控制器代码中缺少then的第二个函数参数,用于处理失败:

$scope.isUser=myFactory.isUser('tim').then(function(data){
    console.log(data.data.items);
    $scope.factoryOutput2=data.data.items
}, function(data){ $scope.factoryOutput2 = data });  

用更新克隆你的JS Bin