Servicio AngularJS reintenta cuando la promesa es rechazada

Estoy obteniendo datos de un servicio asíncrono dentro de mi controlador de esta manera:

myApp.controller('myController', ['$scope', 'AsyncService',
function($scope, AsyncService) {
    $scope.getData = function(query) {
        return AsyncService.query(query).then(function(response) {
            // Got success response, return promise
            return response;
        }, function(reason) {
            // Got error, query again in one second
            // ???
        });
    }
}]);

Mis preguntas:

Cómo volver a consultar el servicio cuando recibo un error del servicio sin devolver la promesa.¿Sería mejor hacer esto en mi servicio?

¡Gracias!

Respuestas a la pregunta(5)

Su respuesta a la pregunta