¿Cómo puedo extender $ q promesa en Angularjs con un .success y .error
Escribí este pequeño código en un servicio personalizado en AngularJS.
En mi servicio:
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;
};
En mi controlador:
promiseService.myPromise()
.success(function(data){
$scope.success= data;
})
.error(function(data){
$scope.error = data;
});
Juste Manejar el éxito y el error de la promesa (servicio $ q). Necesito este código en muchos otros servicios, así que extendería directamente el servicio $ q con un servicio personalizado.
Así que me gustaría algo como esto en mi servicio:
var deferred = myPromiseService.$qCustom.defer();
var promise = deferred.promise;
deferred.resolve('success');
deferred.reject('error');
return promise;
¿Alguna idea? Encontré una explicación para extender el filtro en Angularjs. Mi problema es encontrar la manera de extender toda la funcionalidad de $ q y agregar mi personalización.
Empiezo con algo así, es un trabajo manejar los $ q de la caja:
angular.module('myApp').service('myPromiseService', function($q){
$qCustom = $q;
});