Skip to content

Instantly share code, notes, and snippets.

@cef62
Last active August 29, 2015 14:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save cef62/e6f2af7e9b30f0a7956c to your computer and use it in GitHub Desktop.
Save cef62/e6f2af7e9b30f0a7956c to your computer and use it in GitHub Desktop.
Extend angular promises with success and error
(function(){
'use strict';
angular.module("app", [])
// config phase
.config(function ($provide) {
// decorate the $q service
$provide.decorator('$q', function decorateQ($delegate) {
// refer to original defer method
var defer = $delegate.defer;
// monkey patch the method
$delegate.defer = function () {
var deferred = defer();
// success method
deferred.promise.success = function (fn) {
deferred.promise.then(fn);
return deferred.promise;
};
// error method
deferred.promise.error = function (fn) {
deferred.promise.then(null, fn);
return deferred.promise;
};
return deferred;
};
// return patched service
return $delegate;
});
});
})()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment