Ember更新导致模板中的承诺不等待解决



我正在进行成员1.12.1->1.13.11和成员数据1.0.0-beta->1.13.15更新。我以前有一个模板:

{{a-component parent=model.parent}}

和一个组件

parentChanged: on('init', observer('parent', function() {
  var parent = this.get('parent');
  if (parent) {
    parent.get('child').then(child => {
      this.set('child', child);
    });
  }
}))

这在以前是有效的,但在更新之后,childthen调用之后是未定义的。我不得不把它改成

parentChanged: on('init', observer('parent', function() {
  var parent = this.get('parent');
  if (parent) {
    parent.then(parent => {
      parent.get('child').then(child => {
        this.set('child', child);
      });
    });
  }
}))

让它恢复到更新前的工作状态。

有人知道为什么会这样吗?更新后,模板似乎停止了解析promise。

交联https://github.com/emberjs/ember.js/issues/12732

所以经过一番挖掘和一番谴责http://emberjs.jsbin.com/ququdenari/edit?html,js,output,我无法在1.12.1中获得仅使用promise的初始工作情况。这让我相信,这可能是余烬数据建立关系承诺的方式,由于我从1.0.0-beta 19.1更新到1.13.15,任何突破性的变化都是公平的。

总之,我更了解这个问题,这是我的目标。

编辑:

我做了一个插件ember resolve promise helper来帮助从您的代码中抽象出这个问题。

最新更新