我正试图在多个成员模型完成其保存方法时触发回调。
var promises = [];
modellist.forEach(function(mymodel){
promises.push(mymodel.save())
}
$.when.apply(null, promises).done(function () {
console.log('finished promises');
}
console.log('finished method');
立即执行应用功能。
问题:以下哪个是真的?
- 承诺!=余烬承诺
- 承诺!=延期
- 余烬承诺!=延期
我非常喜欢RSVP.hash
,因为它允许一个对象,而RSVP.all
使用一个数组。
如果您想在常规代码中使用它来保存多个模型。
actions: {
doSomething() {
Ember.RSVP.hash({
model1Saved: this.get('model1').save(),
model2Saved: this.get('model2').save(),
}).then((hash) => {
/* hash.model1Saved and hash.model2Saved are available here */
}, (error) => {
/* Deal with error */
});
}
}
这很好,因为您不必处理数组索引。
返回路线的模型时
model() {
return Ember.RSVP.hash({
posts: this.store.findAll('post'),
tags: this.store.findAll('tag'),
categories: this.store.findAll('category'),
});
},
然后在setupController方法中,您可以:
setupController(controller, model) {
this._super(controller, model.posts);
controller.set('tags', model.tags);
controller.set('category', model.categories);
}
我找到了一个解决方案:
- Ember.RSVP.all(promise).then(function(){…})
这在文档中并不容易找到:-(