Skip to content

Instantly share code, notes, and snippets.

@runspired
Created November 7, 2014 17:29
Show Gist options
  • Save runspired/440cb41757ec5804070a to your computer and use it in GitHub Desktop.
Save runspired/440cb41757ec5804070a to your computer and use it in GitHub Desktop.
Enhance a deferred promise to have finally/catch methods and state
import Ember from "ember";
export default function () {
var deferred = Ember.Deferred.create(),
promise = new Ember.RSVP.Promise(function(resolve, reject) {
deferred.then(
function () { promise.state = "resolved"; resolve.apply(this, arguments); },
function () { promise.state = "rejected"; reject.apply(this, arguments); }
);
});
promise.state = "pending";
promise.resolve = deferred.resolve.bind(deferred);
promise.reject = deferred.reject.bind(deferred);
return promise;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment