Как я могу расширить обещание $ 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;
});