Skip to content

Instantly share code, notes, and snippets.

@PatrickJS
Created March 4, 2014 07:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PatrickJS/9342065 to your computer and use it in GitHub Desktop.
Save PatrickJS/9342065 to your computer and use it in GitHub Desktop.
decorator for q style promises
app.config(['$provide', function($provide) {
$provide.decorator('$q', function ($delegate) {
var defer = $delegate.defer;
console.info('Q');
var all = $delegate.all;
$delegate.defer = function () {
var deferred = defer();
deferred.promise.success = function (fn) {
deferred.promise.then(function (value) {
fn(value);
});
return deferred.promise;
};
deferred.promise.done = deferred.promise.success;
deferred.promise.error = function (fn) {
deferred.promise.then(null, function (value) {
fn(value);
});
return deferred.promise;
};
deferred.promise.fail = deferred.promise.error;
deferred.promise.spread = function(fn) {
deferred.promise.then(function(promises) {
fn.apply(fn, promises);
});
return deferred.promise;
};
return deferred;
};
$delegate.all = function(allPromises) {
var dfd = $delegate.defer();
all(allPromises).then(dfd.resolve, dfd.reject);
return dfd.promise;
};
return $delegate;
});
}]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment