import co from 'ember-co';
...
let companyNamePromise = co(function*() {
let user = yield this.store.findRecord('user', 'Johnny');
let company = yield user.get('company');
return company.get('name');
}, 'promise label');
console.assert(companyNamePromise instanceof Ember.RSVP.Promise, 'co returns an Ember promise');
companyNamePromise.then(console.log)
import { wrap } from 'ember-co';
let UserRoute = Ember.Route.extend({
model: wrap(function*({ id }) {
let user = yield this.store.findRecord('user', id);
this.set('user', user);
let friends = user.get('friends');
return { user, friends };
}, 'model promise'),
actions: {
updateCompanyName: wrap(function*(newName) {
this.get('user');
let company = yield user.get('company');
company.set('name', newName);
}, 'update company name action'),
}
});