AngularJS-Service erneut versuchen, wenn das Versprechen abgelehnt wird

Ich erhalte Daten von einem asynchronen Dienst in meinem Controller wie folgt:

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
            // ???
        });
    }
}]);

Meine Fragen:

Wie kann ich den Service erneut abfragen, wenn ich einen Fehler vom Service erhalte, ohne das Versprechen zurückzugeben?Wäre es besser, dies in meinem Dienst zu tun?

Vielen Dank!