2

使用有什么区别:

new RSVP.Promise()文档

new Promise()文档

在 Ember 应用程序中?

他们只是别名吗?

4

1 回答 1

3

第一个创建一个新的 RSVP 承诺。RSVP Promise 符合 ES6/A+,因此它本质上是一个 polyfill(具有一些额外功能)。这样做没有错。

第二种情况取决于调用代码的范围。如果你有一个var Promise = RSVP.Promise;地方,他们的意思是一样的。但是,如果您还没有声明Promise自己,这可能会退回到浏览器实现(如果存在)。因为 RSVP 符合 ES6/A+,如果使用浏览器实现,您可能不会注意到(除非您使用自定义 RSVP 方法)。

简短的回答很长:它们可能意味着相同的东西,但它们可能不是。

就个人而言,我更喜欢第二种方法,因为当 RSVP 被移除并使用浏览器实现时,无需更改任何代码。我只是window.Promise = window.Promise || Ember.RSVP.Promise在我的脚本开始时做一个 polyfill。但是,如果您这样做,请务必仅使用此页面上列出的方法,而不是任何额外的 RSVP 方法。

于 2015-07-16T21:17:44.230 回答