我正在构建一个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?
都会在赛季前记录下来。显然,控制台日志仅用于示例,它会产生我正在尝试完成的实际问题。有人知道这个延迟的简单修复吗?
感谢。
答案 0 :(得分:1)
当然是。这是一种异步行为。解决从findRecord()
返回的承诺需要一些时间,结果是:
this.store.findRecord(); //synchronous
console.log('we are here'); //synchronous
同时从findRecord()
返回的承诺得到解决(异步行为)
console.log(admin.get('season'));
答案 1 :(得分:0)
异步调用不会阻止代码进行,这就是它的目的。否则,它会在加载数据时阻止UI更新和用户交互。