Ember.js - 不同的承诺 类
Ember.js - different promise classes
使用有什么区别:
new RSVP.Promise()
(docs)
和
new Promise()
(docs)
在 Ember 应用程序中?
他们只是别名吗?
第一个创建新的 RSVP 承诺。 RSVP 承诺是 ES6/A+ 兼容的,因此它本质上是一个 polyfill(具有一些额外的功能)。这样做没有错。
第二种情况取决于调用代码的范围。如果你在某个地方有 var Promise = RSVP.Promise;
,它们的意思是一样的。但是,如果您没有自己声明 Promise
,这可能会回退到浏览器实现(如果存在的话)。因为 RSVP 是 ES6/A+ 兼容的,所以您可能不会注意到是否使用了浏览器实现(除非您使用的是自定义 RSVP 方法)。
简答长:它们可能表示相同的意思,但也可能不同。
就我个人而言,我更喜欢第二种方法,因为当删除 RSVP 并使用浏览器实现时,无需更改任何代码。我只是在我的脚本开头做 window.Promise = window.Promise || Ember.RSVP.Promise
作为 polyfill。但如果您这样做,请务必只使用 this page 中列出的方法,而不是任何额外的 RSVP 方法。
使用有什么区别:
new RSVP.Promise()
(docs)
和
new Promise()
(docs)
在 Ember 应用程序中?
他们只是别名吗?
第一个创建新的 RSVP 承诺。 RSVP 承诺是 ES6/A+ 兼容的,因此它本质上是一个 polyfill(具有一些额外的功能)。这样做没有错。
第二种情况取决于调用代码的范围。如果你在某个地方有 var Promise = RSVP.Promise;
,它们的意思是一样的。但是,如果您没有自己声明 Promise
,这可能会回退到浏览器实现(如果存在的话)。因为 RSVP 是 ES6/A+ 兼容的,所以您可能不会注意到是否使用了浏览器实现(除非您使用的是自定义 RSVP 方法)。
简答长:它们可能表示相同的意思,但也可能不同。
就我个人而言,我更喜欢第二种方法,因为当删除 RSVP 并使用浏览器实现时,无需更改任何代码。我只是在我的脚本开头做 window.Promise = window.Promise || Ember.RSVP.Promise
作为 polyfill。但如果您这样做,请务必只使用 this page 中列出的方法,而不是任何额外的 RSVP 方法。