Ember.js - 功能在商店完成之前完成

时间:2016-09-02 23:51:54

标签: ember.js

我正在构建一个ember应用程序,并且我一直遇到同样的问题,我调用了商店,但该函数在商店从后端检索数据之前一直在编译。具体来说,我遇到了findRecord的问题。我已经实现了两种方式:

var admin = this.store.findRecord('admin', 1);
console.log(admin.get('season'));
console.log('Are we here?');

this.store.findRecord('admin', 1).then(function(admin) {
  console.log(admin.get('season'));
});
console.log('Are we here?');

在这两种情况下,Are we here?都会在赛季前记录下来。显然,控制台日志仅用于示例,它会产生我正在尝试完成的实际问题。有人知道这个延迟的简单修复吗?

感谢。

2 个答案:

答案 0 :(得分:1)

当然是。这是一种异步行为。解决从findRecord()返回的承诺需要一些时间,结果是:

this.store.findRecord(); //synchronous
console.log('we are here'); //synchronous

同时从findRecord()返回的承诺得到解决(异步行为)

console.log(admin.get('season'));

答案 1 :(得分:0)

异步调用不会阻止代码进行,这就是它的目的。否则,它会在加载数据时阻止UI更新和用户交互。