Comment définir un délai d'attente d'interrompre une $http.get() à l'intérieur d'une usine ou d'un service?

J'ai la méthode suivante getData(url) dans mon usine qui utilise $http.get(url) pour obtenir des données à partir d'une URL

angular
  .module('az-app')
  .factory('WebServiceFactory', function ($http, $q) {

   var WebServiceFactory = this;


   WebServiceFactory.getData = function (url) {

      var deferred = $q.defer();

      $http.get(url)
        .then(
        function (response) {

          deferred.resolve({
            data: response
          });

        }, function (rejected) {

          deferred.reject({
            data: rejected
          });
        }
      );
      //Promise to be returned
      return deferred.promise;
    }

Il fonctionne très bien mais j'ai besoin d'interrompre le http.obtenir et/ou le rejet de la promesse, afin que je puisse afficher un message d'erreur de mon contrôleur qui a cette méthode:

var getSpecialties = function (type) {
  doctorsCtrl.showLoading();

  var url = "example.com";

  WebServiceFactory.getData(url)
    .then(
    function (result) {
      doctorsCtrl.hideLoading();


      var specialtiesArray = result.data.data;

      StorageFactory.specialties = specialtiesArray;
      doctorsCtrl.specialties = StorageFactory.specialties

      //I WANT TO TRIGGER THIS REJECTED FUNCTION when timeout time is finished
    }, function (rejected) {
      doctorsCtrl.hideLoading();
      doctorsCtrl.showAlert();
    }
  );
}
InformationsquelleAutor Jeka | 2015-10-20