Skip to content

Instantly share code, notes, and snippets.

@raido
Last active December 30, 2015 09:36
Show Gist options
  • Save raido/acc5d350fc3a6adc4f36 to your computer and use it in GitHub Desktop.
Save raido/acc5d350fc3a6adc4f36 to your computer and use it in GitHub Desktop.
Promises, wait what?
import Ember from 'ember';
export default Ember.Controller.extend({
appName:'Ember Twiddle',
firstLevel() {
return new Ember.RSVP.Promise((resolve, reject) => {
Ember.run(null, reject);
}).finally(() => {
// finally handler
});
},
secondLevel() {
// Both of these mess up thirdLevel execution to success
/*return this.firstLevel().then(() => {
// success
}, () => {
// error
});*/
return this.firstLevel().catch(() => {
// error
});
},
actions: {
thirdLevel() {
this.secondLevel().then(() => {
alert('it should not be called');
});
}
}
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{outlet}}
<br>
<br>
<button {{action 'thirdLevel'}}>Click me</button>
{
"version": "0.4.17",
"EmberENV": {
"FEATURES": {}
},
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.2.0/ember.debug.js",
"ember-data": "https://cdnjs.cloudflare.com/ajax/libs/ember-data.js/2.2.0/ember-data.js",
"ember-template-compiler": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.2.0/ember-template-compiler.js"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment