AngularJS: inicializa assincronamente o filtro

Estou com problemas para tentar inicializar um filtro com dados assíncronos.

O filtro é muito simples, ele precisa traduzir os caminhos para o nome, mas para isso ele precisa de uma matriz de correspondência, que eu preciso buscar no servidor.

Eu poderia fazer as coisas na definição do filtro, antes de retornar a função, mas o aspecto assíncrono impede que

angular.module('angularApp').
  filter('pathToName', function(Service){
    // Do some things here

    return function(input){
      return input+'!'
    }
  }

Usando uma promessa pode ser viável, mas eu não tenho qualquer entendimento claro sobre como filtros de cargas angulares. estepostar explica como conseguir tal magia com serviços, mas é possível fazer o mesmo para filtros?

E se alguém tiver uma ideia melhor de como traduzir esses caminhos, sou todo ouvidos.

EDITAR:

Eu tentei com a promessa de compromisso, mas algo não está certo, e eu não consigo ver o que:

angular.module('angularApp').filter('pathToName', function($q, Service){

  var deferred = $q.defer();
  var promise = deferred.promise;

  Service.getCorresp().then(function(success){
    deferred.resolve(success.data);
  }, function(error){
    deferred.reject();
  });

  return function(input){
    return promise.then(
      function(corresp){
        if(corresp.hasOwnProperty(input))
          return corresp[input];
        else
          return input;
      }
    )
  };
});

Eu não sou realmente familliar com promessas, é o caminho certo para usá-los?

questionAnswers(2)

yourAnswerToTheQuestion