使用有什么区别:
new RSVP.Promise()
(文档)
和
new Promise()
(文档)
在 Ember 应用程序中?
他们只是别名吗?
第一个创建一个新的 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 方法。