Last active
August 29, 2015 14:10
-
-
Save cef62/e6f2af7e9b30f0a7956c to your computer and use it in GitHub Desktop.
Extend angular promises with success and error
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(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