Skip to content

Instantly share code, notes, and snippets.

@rodneyrehm
Last active August 29, 2015 14:02
Show Gist options
  • Save rodneyrehm/cccc240e54bdf3304fc5 to your computer and use it in GitHub Desktop.
Save rodneyrehm/cccc240e54bdf3304fc5 to your computer and use it in GitHub Desktop.
Question: Promise resolved handling
// Do you prefer alwaysWrapped() or wrappedWhenNeeded() for
// a method that depends on some promise being resolved?
function FooBar() {
this.ready = $.getJSON('something.funky');
}
FooBar.prototype.alwaysWrapped = function() {
return this.ready.then(function(){
// do something that returns a promise
});
};
FooBar.prototype.wrappedWhenNeeded = function() {
if (!this.ready.isResolved()) {
return this.ready.then(this.wrappedWhenNeeded.bind(this));
}
// do something that returns a promise
};
@rodneyrehm
Copy link
Author

1.5 for alwaysWrapped(), 0 for wrappedWhenNeeded()

@simevidas
Copy link

I don't know how the second example works, but the first one looks good :)

@simevidas
Copy link

This might be a good question for es-discuss.

@simevidas
Copy link

Maybe this:

FooBar.prototype.doStuff = function () {
    // just assume .ready is resolved
   // do something that returns a promise
};

// then…
var foobar = new FooBar();
foobar.ready.then(foobar.doStuff.bind(foobar));

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment