如何离线时如何防止http拦截器

时间:2014-12-06 16:00:06

标签: angularjs angular-http-interceptors

我正在构建一个带有离子的应用程序,我在每个加载的请求上显示加载指示符。请求完成后,将删除加载指示器。当存在网络连接时,这很有用。

离线时,请求开始并显示加载指示符。问题是加载指示器永远不会消失,因为请求永远不会完成。我怎样才能最好地处理这件事?我在考虑超时或其他什么。最好的方法是在用户离线时根本不启动请求。

$httpProvider.interceptors.push(function($rootScope) {
    return {
      request: function(config) {
        config.timeout = 5000;
        $rootScope.$broadcast('loading:show')
        return config
      },
      response: function(response) {
        $rootScope.$broadcast('loading:hide')
        return response
      }
    }
  })

1 个答案:

答案 0 :(得分:0)

添加以下

  responseError: function(response) {
    $rootScope.$broadcast('loading:hide')
    return response
  }


  requestError: function(response) {
    $rootScope.$broadcast('loading:hide')
    return response
  }