Javascript 余烬承诺数组

Javascript 余烬承诺数组,javascript,ember.js,Javascript,Ember.js,我有我的控制器,记录是一个计算属性。在orderBy或page change my app shuold上执行新呼叫。 此控制器工作正常: App.IndexController = Ember.ArrayController.extend({ ... records: function() { return this.store.find("record", { page: this.get("page"), page_size: this.ge

我有我的控制器,记录是一个计算属性。在orderBy或page change my app shuold上执行新呼叫。 此控制器工作正常:

App.IndexController = Ember.ArrayController.extend({
  ...
  records: function() {
    return this.store.find("record", {
        page: this.get("page"),
        page_size: this.get("pageSize"),
        order_by: this.get("orderBy")
    })
  }.property("key", "orderBy", "page"),
})
但是如果我想在请求期间显示沙漏:

App.IndexController = Ember.ArrayController.extend({
  ...
  records: function() {
    this.showHourglass();
    return this.store.find("record", {
        page: this.get("page"),
        page_size: this.get("pageSize"),
        order_by: this.get("orderBy")
    }).then(function(records) {
      this.hideHourglass();
      return records;
    })
  }.property("key", "orderBy", "page"),
})
我得到了这个错误: 未捕获错误:断言失败:每个循环所覆盖的值必须是数组。您传递了{{u id:59,{u标签:未定义,{u状态:未定义,{u结果:未定义,}

我怎样才能解决这个问题? 谢谢

编辑: 在我的模板中,属性上有一个循环:

{{#each records}}
    ...
{{/each}
这是因为This.store.findrecord返回一个ArrayPromise。但是因为您正在链接一个新的。那么返回的值只是一个常规的承诺,它不能被迭代

App.IndexController = Ember.ArrayController.extend({
  ...
  records: function() {
    this.showHourglass();
    var promiseArray = this.store.find("record", {
        page: this.get("page"),
        page_size: this.get("pageSize"),
        order_by: this.get("orderBy")
    })

    promiseArray.then(function(records) {
      this.hideHourglass();
    })

    return promiseArray;
  }.property("key", "orderBy", "page"),
})