繁体   English   中英

ES5 与 ES6 承诺

[英]ES5 vs ES6 Promises

我想知道 JS 承诺是否是 ES5 的一部分? 如果是这样,为什么它有时在旧浏览器中不起作用,我们必须为它们添加一个 polyfill。 另外,在这种情况下应该添加哪个 polyfill,是 ES5 还是 ES6? 我对此有点困惑。

ES5 没有承诺。 像 jQuery 或 Angular 这样的库有自己的自定义和非标准 promise 实现。

与 ES5 一起使用的流行 Promise 实现是 Bluebird(与 ES6 标准兼容)和 Q(最初与 ES6 标准不兼容——尽管似乎正在朝着这个方向发展)和 RSVP。

实际的 polyfill 也不是,因为如果存在原生承诺,它们不会让步,因为它们添加了额外的功能。

ES6 承诺有一些纯 polyfill。 这是 RSVP 的一个子集: https : //github.com/stefanpenner/es6-promise

正如您在此处阅读的那样, 除了使用 polyfill 之外,还有理由使用现在我们有了 ES6 承诺,是否还有理由使用 Q 或 BlueBird 等承诺库?

在 Stack Overflow 上要求推荐一个特定的 polyfill 库被认为是题外话,所以我不会对此发表评论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM