Ember.js 中的同步数据调用

Synchronous data calls in Ember.js

我在访问 reviews/show (/reviews/:id) 时尝试执行以下操作:

所以两个同步数据库查询,然后 return 它们同时在路由的 model 挂钩中。

我不介意它是否慢,它现在已经足够快了,我需要它来工作现在

这是我试过的方法,但没有用:

reviews/show.js

export default Ember.Route.extend({
  model: function(params) {
    var user;
    var review = this.store.findRecord('review', params.id).then(
      function(result) {
        user = this.store.findRecord('user', result.get('userId'));
      }
    );

    return Ember.RSVP.hash({
      review: review,
      user: user
    });
  }
});

你可以这样做:

export default Ember.Route.extend({
  model: function(params) {
    var reviewPromise = this.store.findRecord('review', params.id);
    return Ember.RSVP.hash({
      review: reviewPromise,
      user: reviewPromise.then(review => {
        return this.store.findRecord('user', review.get('userId'));
      })
    });
  }
});

用户是undefined的原因是因为在审核解决之前它还没有在你的第一个承诺中分配,但是Ember.RSVP.hash已经收到user作为[=11] =].