Como priorizar solicitações no serviço angular $ http?

Estou trabalhando em um aplicativo com uma grande quantidade de carregamento lento de dados. Gostaria de priorizar solicitações HTTP com base no parâmetro 'priority'.

Este é o conceito de usá-lo.

$http.get(url, {params: query, priority: 1})

Eu estava pensando em usar interceptores $ http. Algo parecido:

 angular.module('myModule')
.factory('httpPriorityInterceptor', function ($interval, $q) {
    var requestStack = [];

    return {
        request: function (config) {

            config.priority = config.priority || 3;

            requestStack.push(config);
            requestStack.sort(sortByPriority);

            if (isFirstToGo(item)) return requestStack.pop();

            deferred = $q.defer();

            var intervalPromise = $interval(function(){

                if (isFirstToGo(item)) {
                    deferred.resolve(requestStack.pop());
                    $interval.cancel(intervalPromise);
                };

            }, 100);

            return deferred.promise;

        }   
    };
});

Mas não posso retornar a promessa aqui. Alguma ideia?

questionAnswers(3)

yourAnswerToTheQuestion