Как я могу расширить обещание $ q в Angularjs с помощью .success и .error

Я написал этот небольшой код в пользовательском сервисе AngularJS.

В моем сервисе:

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

        deferred.resolve('success');
        deferred.reject('error');

        /* Handle success and error */
        promise.success = function(fn) {

            promise.then(function(response) {

                fn(response);

            });

            return promise;
        };

        promise.error = function(fn) {

            promise.then(null, function(response) {

                fn(response);

            });

            return promise;
        };

В моем контроллере:

        promiseService.myPromise()
            .success(function(data){

                $scope.success= data;

            })
            .error(function(data){

                $scope.error = data;

            });

Я оправдываю Обращение к успеху и ошибке из обещания ($ q service). Я нуждаюсь в этом коде во многих других сервисах, так что я бы расширил сервис $ q с помощью обычая.

Поэтому я хотел бы что-то вроде этого в моем сервисе

    var deferred = myPromiseService.$qCustom.defer();
    var promise = deferred.promise;

    deferred.resolve('success');
    deferred.reject('error');

    return promise;

Любая идея? Я нашел какое-то объяснение по расширению фильтра в Angularjs, и моя проблема в том, чтобы найти хороший способ расширить все функциональные возможности $ q и добавить свой пользовательский.

Я начинаю с чего-то в этом роде,s работа с $ q из коробки:

angular.module('myApp').service('myPromiseService', function($q){

  $qCustom = $q;  

});

Ответы на вопрос(3)

Ваш ответ на вопрос