Skip to content

Instantly share code, notes, and snippets.

@dented
Created February 22, 2018 04:29
Show Gist options
  • Save dented/d72b4e00d586a3dafb74ccadca593acb to your computer and use it in GitHub Desktop.
Save dented/d72b4e00d586a3dafb74ccadca593acb to your computer and use it in GitHub Desktop.
Deferred without jQuery
window.$.Deferred = function() {
var resolver, rejector;
var promise = new Promise(function(resolve, reject) {
resolver = resolve;
rejector = reject;
});
var deferred = {
resolve: resolver,
reject: rejector,
then: function(a, b) { promise = promise.then(a, b); return deferred; },
pipe: function(a, b) { promise = promise.then(a, b); return deferred; },
done: function(a) { promise = promise.then(a, b); return deferred; },
fail: function(a) { promise = promise.catch(a); return deferred; },
always: function(a) { promise = promise.finally(a); return deferred; },
promise: function() { return deferred; }
};
return deferred;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment