如何将jquery.when与ember数据承诺一起使用



我正试图在多个成员模型完成其保存方法时触发回调。

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(){…})

这在文档中并不容易找到:-(

相关内容

  • 没有找到相关文章

最新更新