Skip to content

Instantly share code, notes, and snippets.

@thijsvdanker
Last active November 13, 2015 11:20
Show Gist options
  • Save thijsvdanker/2cb9549818bf4aec80b2 to your computer and use it in GitHub Desktop.
Save thijsvdanker/2cb9549818bf4aec80b2 to your computer and use it in GitHub Desktop.
Promises experiment
import Ember from 'ember';
export default Ember.Controller.extend({
appName:'Promises experiment',
facts: ['a','b','c'],
status: 'waiting....',
init: function() {
console.log('insert');
this.get('promiseCheck');
},
promiseCheck: Ember.computed(function() {
let promiseCollection = [];
this.facts.forEach(function(fact){
// Create a promise.
let factPromise = new Ember.RSVP.Promise(function(resolve) {
let msg = 'resolved fact' + fact;
Ember.run.later({msg: msg, resolve: resolve}, function() {
console.log(this.msg);
this.resolve(this.msg);
}, 1000);
});
// And add it to the collection.
promiseCollection.pushObject(factPromise);
});
let self = this;
// When all promises are resolved, log this.
return Ember.RSVP.all(promiseCollection).then(function(value){
console.log('All done');
self.set('status', 'All done!');
});
})
});
<h1>{{appName}}</h1>
<br>
<br>
{{status}}
<br>
<br>
{
"version": "0.4.16",
"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.1.0/ember.debug.js",
"ember-data": "https://cdnjs.cloudflare.com/ajax/libs/ember-data.js/2.1.0/ember-data.js",
"ember-template-compiler": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/2.1.0/ember-template-compiler.js"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment